• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル2007で、Application.Runを使って、他のブック)

エクセル2007でのApplication.Run実行時エラーと解決方法

このQ&Aのポイント
  • エクセル2007でApplication.Runを使って他のブックの関数を使用しようとしたところ、実行時エラーが発生しました。
  • エクセル2007では、ブックを開くとマクロが自動的に無効になるため、マクロを有効にする方法を試しましたが解決しませんでした。
  • エクセル2007でのApplication.Runの実行方法について、他のブックを開いて処理を行う方法が分かりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

>エクセル2007でApplication.Runをどうすれば実行できるでしょうか? 別に、Excel2007 でも、前のバージョンでも変わりません。 質問全体としては、分からない部分がいくつかあります。 なぜ、肝心な部分のコードを書かないで質問されているのか良く分かりません。 >next_book="test.xls" >Workbooks.Open (ThisWorkbook.Path & "\" & next_book) Excel 2007 で、旧xls ファイルを呼び出すのでしょうか? 仮に、そうであっても、開けば、 Application.Run で呼び出せるはずです。 >目的は、1というBOOKの処理が終わったら、次のブックを自動で立ち上げて、次のブックの処理スタートボタンを自動で押したいというものです。 しかし、ボタンの種類にもよりますが、Active X コントロールのボタンを、呼び出し処理は出来ないはずです。Private ステートメントが付いているはずです。それを外せばよいのですが、そんなことは、あまりしませんね。だいたい、こういう場合は、Application.Run で実行させることなどありません。 あまり凝ったことをせずに、別のブックにコードを置いて、処理するのが良いのではないかと思います。

neo1124
質問者

お礼

説明用にサンプルプログラムを作ろうとおもったら、ソチラでは動きました。 メインのプログラムがなぜ実行時エラーが出るのかはわからないままですが、確かにおっしゃる通りエクセル2007が問題ではないようです。 とりあえず、Application.Run を使わず、次のBOOKのオープンイベントで処理を開始するようにして 対応しました。 なお、xls形式を使っている理由はファイルを配布するからです。エクセル2007形式では読み取り出来ない方も居られますので。 ご回答ありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

2007で無いですが、何か参考になれば。 XXX.xlsのModule1に Sub test02() UserForm1.Show End Sub があります。 このブックをまず開いておく。 ーーー 他のブックを開いて(新規ブックBook1。保存前)、標準モジュールに Sub test01() Application.Run "xxx.xls!Module1.Test02" End Sub を入れて 、実行すると、UserForm1が現れ、ボタンをクリックすると、クリックイベントの Private Sub CommandButton1_Click() MsgBox "SSS" Workbooks("Book1").ActiveSheet.Range("A1") = "xxxx" End Sub を入れていますが、所定の処理が実行されましたが。 (Module1の限定を入れてますか。Module2などに同名のプロシ名がある場合)

neo1124
質問者

お礼

アドバイスありがとうございました。 マクロが無効になってしまう原因はわからないままですが、別の方法で対応しました。 ちょっと不思議な現象ですが、ファイルを作りなおすと現象が治りそうな気がします。 いろいろ調べてみます。

関連するQ&A