前提・実現したいこと
・複数のExcelファイル起動中に、最も最近開いたExcelファイルのアクティブセルを取得する
上記の実現方法をご存知の方がいらっしゃいましたら、お力添えいただけますと幸いです。
発生している問題・エラーメッセージ
「Marshal.GetActiveObject」を利用することにより、Excelファイルを一つ起動した状態でのアクティブセルの取得には成功しました。
しかし、複数のExcelファイルを起動した状態で試してみると、アクティブセルが取得できませんでした。
下記ページに、「注意点としては複数のExcelが起動している場合、それを識別することはできません。」との記載があるため、
そもそも「Marshal.GetActiveObject」を利用するやり方では、やりたいことを実現できないのでは?と思っています。
https://tocsworld.wordpress.com/2014/06/05/c%E3%81%8B%E3%82%89excel%E3%82%92%E6%93%8D%E4%BD%9C%E3%81%99%E3%82%8B/
しかし、対策案も見つかっていない状態です。。。
該当のソースコード
C#
1object obj = Marshal.GetActiveObject("Excel.Application"); 2if (obj != null) 3{ 4oApplication = (Excel.Application)obj; 5} 6oRange = oApplication.ActiveCell;
動作環境
Windows10、Excel2010、C#、Visualstudio2019
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。