- - PR -
VC2005 Excel操作について
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-06-08 11:47
インスタンスの型は、どちらも Excel::Range^ ですが、 UsedRange は、セルの指定ができませんよね。 つまり、「どこからどこまで」 という範囲の保証がないですよね。
むしろ、こちらでないとできません。(;^-^) COM 参照の解放にだけは気をつけてください。 (コードが出ていないので、このあたりの実装はわかりませんけど) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-06-08 12:06
じゃんぬねっとさん
レスありがとうございます。 もう少し突っ込んで、聞いてしまいます。 [/quote] インスタンスの型は、どちらも Excel::Range^ ですが、 UsedRange は、セルの指定ができませんよね。 つまり、「どこからどこまで」 という範囲の保証がないですよね。 [quote] Excel::Worksheet^ sheet = (Excel::Worksheet^)xlWorkbook->ActiveSheet; sheet->Cells[2,1] = "test"; ← セルに記述されます。 sheet->UsedRange->Borders->LineStyle = 1; ← 同様にセルに対して、線が引けます。。 ↑上記の場合、Cells[2,1]に線を引くことが出来ます。 エラーにならないから、良いというわけではないですが、 引用の部分で、セルの指定が出来ませんとありますが、 これは、セルの指定が出来てないのでしょうか??
解放というのは、 ReleaseComObjectを使えば良いのですよね? こちらを使用しています。 [ メッセージ編集済み 編集者: ken 編集日時 2006-06-08 12:07 ] | ||||||||||||
|
投稿日時: 2006-06-08 12:35
そう来ましたか。(;^-^) そういう使い方をすれば、指定が出来ていることになるでしょうね。(少々、危険ですが) しかし、これですと、Cells[2, 1] で取得した Excel::Range^ を何故使わないのですか? という疑問の方が大きくなってしまいます。 それと、疑問だけでなく、
このような書き方では、
ReleaseComObject では、解放できていないものが多数あることになります。 # 本題の方は、私の言ったとおりの方法で実装できたのでしょうか... 気になります。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-06-08 12:59
| ||||||||||||
|
投稿日時: 2006-06-08 13:25
私もこれ思いました。C++/CLIはネイティブコードが書けるので、.NET用のCOMの使い方 (COM interopってよぶんですか?)はあまりすることはないかなぁと思っています。 [ メッセージ編集済み 編集者: Blue 編集日時 2006-06-08 13:26 ] | ||||||||||||
|
投稿日時: 2006-06-08 13:34
じゃんぬねっとさん
レスありがとうございます。
じゃんぬねっとさんの説明で、下記のようなしたら出来たのですが、 >これですと、Cells[2, 1] で取得した Excel::Range^ を何故使わないのですか? 知識が無かったので、じゃんぬねっとさんの指摘で気が付きました。 sheet->Range["B2", "B2"]->Borders[Excel:lBordersIndex:lEdgeTop]->LineStyle = Excel:lLineStyle:lDouble; こちらは、危険にあたるのでしょうか? 色々な、意見があるのかと思いますが、 参考に出来たらと思います。 それとも、先ほど説明していただいた、 通りにやったほうが良いのでしょうか? 解放については、 上記のように線を書いた場合何に対して 何を行えばよいのでしょうか良いのでしょうか? System::Runtime::InteropServices::Marshal::ReleaseComObject(xlWorkbooks); System::Runtime::InteropServices::Marshal::ReleaseComObject(xlApplication); の事ではなのですね。。 ご説明御願いいたします。 [ メッセージ編集済み 編集者: ken 編集日時 2006-06-08 13:35 ] | ||||||||||||
|
投稿日時: 2006-06-08 13:45
渋木宏明(ひどり)さん、Blueさん
レスありがとうございます。
C言語で、作成したかったので、 こちらを選択しました。 ネイティブコードでオートメーション?? これは、どうゆう事なのでしょうか? 勉強してみます。 |