|
分類:[VB.NET/VB2005 以降]
フォームにListBoxを2つ貼り付けて、ListBox1に起動中のエクセルのブック、LIstBox2にListBox1で指定されたブックのシートの一覧を表示しようとしています。 エクセルのインスタンス一つにつきエクセルのブックが一つの場合は、以下のコードで複数のブック名を表示できました。
For Each hProcess As Process In Process.GetProcessesByName("EXCEL") ListBox1.Items.Add(hProcess.MainWindowTitle) ↑ 実際は多少の文字列の加工が必要(一つのインスタンスで複数のブックを開く場合は、不可) Next hProcess
そこからエクセルのアプリケーションを参照する方法ですが、以下のコードではブック名がフルパスでないためエラーになってしまいます。
エクセルのアプリケーション = GetObject(ListBox1.Items(0).ToString(), "Excel.Application")
プロセスにMainWindowHandleというプロパティがありますが、これを使ってアプリケーションが参照できそうですが、やり方が分かりません。 上のやり方にこだわりませんが、ご存じの方がいらっしゃいましたら教えてください。
|