- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルの二重起動をやめたい)
エクセルの二重起動をやめたい
このQ&Aのポイント
- VBからエクセルを起動する際、すでに開いているファイルは開かないようにしたく、検索をした結果の回答があり参考にしたのですが、うまくいきません。
- 「オブジェクト」-「参照設定」でエクセルを選択することによって解決しましたが、For Each xlsBook In xlsApp.Workbooksの部分で上手く引っ掛けることができません。
- 設定が足りないのかどうか、わかる方がいらっしゃいましたら教えていただけると助かります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Excel.Applicationはクラス名(?)です。 Set xlsApp = GetObject(, "Excel.Application") 第2引数になるのでこのようにしたらどうでしょう?
その他の回答 (1)
- sorarisp
- ベストアンサー率58% (7/12)
回答No.1
FullNameで受け取るパスは絶対パスだったと思います。 findBookPathは絶対パスになっていますか? それと、パスの最後等にスペース等が入っているとStrCompは-1を返すので注意してください。 上記の質問ですと、WorkbookをOpenする事は出来ているわけですよね。 そうすると、このぐらいしか思いつかないです。
質問者
お礼
早速のご回答ありがとうございます。 初心者なのであまり難しいことは分かりませんが、 STOPで止めて確認したのですが、FullNameは”c:¥○○¥○○.xls” となっており最後に空白は入っていません。 また、OPENはできる状態で、二重に起動してしまう問題です。 後、 On Error Resume Next と On Error GoTo 0を外して、 エクセルを起動した状態で走らせて見ると Set xlsApp = GetObject("Excel.Application") でエラーが出て止まります。xlsApp =notingです。 このあたりに問題がありそうな気がしてきました。もう少し調べてみます。 では
お礼
ありがとうございます。 早速やってみました。 そしたら、見事!2重に開かなくなりました。 ありがとうございます。 これでやっと先に進むことが出来ます。 感謝!感謝!