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

わんくま同盟

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

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


■103456 / )  Re[3]: Excelを開くのを1つだけ
□投稿者/ 魔界の仮面弁士 (3814回)-(2024/11/27(Wed) 13:06:37)
No103452 (screen さん) に返信
> エクセルファイルはいくつもあるので開いたエクセルファイルのデータを
> 取りに行きたいのですが2つ以上開いているとうまく取りにいってくれません

対象のファイル名が分かっているなら、
 dynamic book = Microsoft.VisualBasic.Interaction.GetObject(xlsxFilePath);
で呼び出せる可能性があります。ただ、今回は望ましくないかな…。

それぞれの Excel が同一プロセスなら、Excel.Application オブジェクトの
Workbooks プロパティで、個々のワークブックにアクセスできます。

別プロセスで起動されている場合(特にオートメーション併用時)にも対応したい場合は、
ROT を辿れば、個々の Workbook オブジェクトにアクセスできるかと。
https://learn.microsoft.com/ja-jp/dotnet/api/system.runtime.interopservices.comtypes.ibindctx.getrunningobjecttable?WT.mc_id=DT-MVP-8907&view=netframework-4.8.1

いずれも COM オブジェクトへのアクセスとなるので、ReleaseComObject を忘れずに。
返信 編集キー/


管理者用

- Child Tree -