テスターですが何か?

ホビープログラマ略してHPです

VB.NETからExcelのCOMオブジェクトを操作する場合の注意点

leave a comment »

掌αバージョン作成時に大はまりして結局解決策が見つからなかった問題。

.NET言語(VB,C#)からExcelのCOMオブジェクトを使用した場合、Excelのプロセスがどうやっても終了しませんでした。タスクマネージャにEXCEL.EXEが残り続けてしまうという現象です。

 

いろんな技術系ブログからついに解決策を見つけました。

【VB.NET】VB.NET から Excel の COM オブジェクトを操作する場合の注意点

  1.使用した COM オブジェクトは必ず解放しなければいけない。

  2.ループ内で使用する,変数を共有するオブジェクトは都度解放する。

  3.「.(ドット)」を使用して,プロパティやメソッドを経由して呼び出してはいけない。

  4.Cells プロパティではなく,Range プロパティを使用する。

1.と3.は説明しているとことは多くて、掌αでも対応していたんですけど、4.は盲点でした。ExcelVBAでCellsプロパティは当たり前に使ってるからなぁ。確かにExcelで自動生成されるマクロにはCellsは登場しなかった気が。

この.NETからExcelを操作する件はいろんな人も壁にぶつかっているようで、断片的に情報はあるんですけどやっとまとまった情報が見つかった気がします。掌βで対応します。

Written by david9142

2009年2月25日 @ 4:02 PM

カテゴリー: VisualBasic

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。