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

わんくま同盟

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

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

■103456 / 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 を忘れずに。
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[2]: Excelを開くのを1つだけ /screen →Re[4]: Excelを開くのを1つだけ /魔界の仮面弁士
 
上記関連ツリー

Excelを開くのを1つだけ / screen (24/11/24(Sun) 09:44) #103450
Re[1]: Excelを開くのを1つだけ / WebSurfer (24/11/26(Tue) 09:23) #103451
  └ Re[2]: Excelを開くのを1つだけ / screen (24/11/26(Tue) 20:30) #103452
    ├ Re[3]: Excelを開くのを1つだけ / kiku (24/11/27(Wed) 10:37) #103453
    └ Excelを開くのを1つだけ / 魔界の仮面弁士 (24/11/27(Wed) 13:06) #103456 ←Now
      └ Re[4]: Excelを開くのを1つだけ / 魔界の仮面弁士 (24/11/28(Thu) 20:17) #103471

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信