C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: 起動中の複数のエクセルを参照するには?


(過去ログ 112 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■66570 / inTopicNo.1)  起動中の複数のエクセルを参照するには?
  
□投稿者/ bagabon (1回)-(2013/05/08(Wed) 18:07:06)

分類:[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というプロパティがありますが、これを使ってアプリケーションが参照できそうですが、やり方が分かりません。
上のやり方にこだわりませんが、ご存じの方がいらっしゃいましたら教えてください。


引用返信 編集キー/
■66571 / inTopicNo.2)  Re[1]: 起動中の複数のエクセルを参照するには?
□投稿者/ 魔界の仮面弁士 (210回)-(2013/05/08(Wed) 19:28:59)
No66570 (bagabon さん) に返信
> そこからエクセルのアプリケーションを参照する方法ですが、

ROT から辿ってみては如何でしょう。
http://www.hanatyan.sakura.ne.jp/vbnetbbs/wforum.cgi?no=10324&reno=10323&oya=10322&mode=msgview&page=0
引用返信 編集キー/
■66572 / inTopicNo.3)  Re[2]: 起動中の複数のエクセルを参照するには?
□投稿者/ bagabon (2回)-(2013/05/08(Wed) 22:32:28)
No66571 (魔界の仮面弁士 さん) に返信
> ■No66570 (bagabon さん) に返信
>>そこからエクセルのアプリケーションを参照する方法ですが、
>
> ROT から辿ってみては如何でしょう。
> http://www.hanatyan.sakura.ne.jp/vbnetbbs/wforum.cgi?no=10324&reno=10323&oya=10322&mode=msgview&page=0

魔界の仮面弁士 さん
ありがとうございます。ご指摘のサイトのプログラムを実行してみました。
起動中のエクセルブックのパス+ファイル名の一覧がListBoxに表示されました。
コードは難しそうですが、ROTについて調べてみます。



解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -