excel vba に関する質問です。excel2016でプログラムを組みました。シートにボタンを張り付けて、そのボタンをクリックするとフォームが起動していろいろ操作するプログラムです。
excel vba に関する質問です。excel2016でプログラムを組みました。シートにボタンを張り付けて、そのボタンをクリックするとフォームが起動していろいろ操作するプログラムです。 VBAエディターから実行すると問題なく実行出来ます。その後ボタンをクリックしても問題なく実行出来ます。ところが一旦ブックを閉じて、再びブックを開いてボタンをクリックすると途端にエラーになってしまいます「実行時エラー'-2147024809(80070057)': 指定されたオブジェクトは見つかりません。」。Sleepとか、Doeventsとかも試しましたが結果は同じでした。開発の段階では実行出来るのに、アイコンからブックを起動してボタンをクリックするとエラーになる考えられる原因は何でしょう?
'問題のコードはこの部分だと思います。 If Dir(ThisWorkbook.Path & "ファイル名.xlsx") <> "" Then Path = ThisWorkbook.Path & "\" Filename = "ファイル名.xlsx" Sheet = "Sheet1" X = 2 Y = 2 Settei(1) = ExecuteExcel4Macro("'" & Path & "\[" & Filename & "]" & Sheet & "'!R" & X & "C" & Y) Me.Controls("OptionButton" & CStr(Settei(1))).Value = True X = 3 Y = 2 Settei(2) = ExecuteExcel4Macro("'" & Path & "\[" & Filename & "]" & Sheet & "'!R" & X & "C" & Y) Me.Controls("OptionButton" & CStr(Settei(2))).Value = True End If
Visual Basic・47閲覧
ベストアンサー
>If Dir(ThisWorkbook.Path & "ファイル名.xlsx") <> "" Then ThisWorkbook.PathがC:\tmpであれば C:\tmpファイル名.xlsxというフォルダを見に行くので 正しく動くことが期待できません If Dir(ThisWorkbook.Path & "\ファイル名.xlsx") <> "" Then こうする必要があるのでは? コード内容を見る限り、ユーザフォームを作成し その中に書かれているコードの一部を貼り付けされたものでしょうか? そこらへんの説明がないと、コードを読むのが面倒になります。
typ********さんご回答頂きましてありがとうございます。typさんがおっしゃられる通りファイル名の前に¥を付けないと正しく動作しません。質問の際、こちらのミスで¥を付けるのを忘れてしまいましたが、実際のプログラムには¥が付いていました。済みません。質問のコードは Userform1にOptionButton1~OptionButton9を配置して 選択されたOptionButtonに応じて WebBrowser1にそれぞれ別のサイトを、 同じUserform1にOptionButton10~OptionButton18を配置して 選択されたOptionButtonに応じて WebBrowser2にそれぞれ別のサイトを表示させる様に作りました。
質問者からのお礼コメント
質問に回答して頂いてありがとうございました。コードの内容をチェックして頂いて真面目な回答を頂けた事に感謝しております。
お礼日時:2019/2/18 23:47