実現したいこと
特定のファイルが起動しているか確認したいです。
GetObjectの挙動がおかしいような気がしています。
前提
GetObjectで特定のファイルが起動しているか確認したい。
発生している問題・エラーメッセージ
オートメーションの操作中にファイル名またはクラス名を見つけられませんでした。
該当のソースコード
VBA
1Private Function IsRunning() As Boolean 2 Dim app As Object 3 On Error GoTo Err_Execute 4 Set app = GetObject("C:\Users\test\Documents\test.xlsx", "Excel.Application") 5 IsRunning = Not app Is Nothing 6 Debug.Print app.Name 7 Set app = Nothing 8 Exit Function 9Err_Execute: 10 Debug.Print Err.Description 11 Err.Clear 12 Set app = Nothing 13 IsRunning = False 14End Function
試したこと
GetObject("C:\Users\test\Documents\test.xlsx")に変えて試しましたが上手くいきませんでした。
test.xlsxだけを起動してソースを実行してTrue、app.Nameはtest.xlsxだった。
abc.xlsxだけを起動してソースを実行してTrue、app.Nameはtest.xlsxだった。
補足情報(FW/ツールのバージョンなど)
Excel2016のファイル起動の確認です。
PowerPointの中に記述して確認しました。
> test.xlsxだけを起動してソースを実行してTrue、app.Nameはtest.xlsxだった。
> abc.xlsxだけを起動してソースを実行してTrue、app.Nameはtest.xlsxだった。
上記はどういうことでしょうか?”だけを起動"とは何ですか?TrueというのはIsRunningをデバッグで確認したということ?
書き方がよくなかったです。申し訳ございません。
だけを起動とは、他のexcelは起動していなくてtest.xlsxだけを開いているということです。
Trueというのはデバッグで確認しました。
> だけを起動とは、他のexcelは起動していなくてtest.xlsxだけを開いているということです。
> Trueというのはデバッグで確認しました。
質問文自体を修正しましょう。色々用語の使い方が少し誤っているように思えるので誤解を受けやすかったり質問者さんの意図が伝わりづらいのだと思うのですが、あと「PowerPointの中に」と言うのは、PowerPoint中でのVBAでコードを実行している、と言う意味でしょうか。
下記が参考になるかもしれません。
https://teratail.com/questions/246338
meg_さんが教えてくださった情報、非常に有難かったです。
ありがとうございました。
回答1件
あなたの回答
tips
プレビュー