• ベストアンサー

Sub Auto_Open() 実行されない

Excel2003VBAについて教えてください。 あるBookから、VBAの”Workbooks.Open”で別のブックを開くように作ってあるのですが、開かれるBookのほうに”Sub Auto_Open()”で特定のシートをアクティブにするように作っています。 普通にBookを開くとSub Auto_Open()は実行されますが、”Workbooks.Open”では実行されません。 ”Workbooks.Open”で開いたときに、特定のシートがアクティブになればそれでよいのですが。 よろしくお願いします。

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

  • ベストアンサー
  • Masa2072
  • ベストアンサー率51% (94/182)
回答No.4

呼び出し元のブックではWorkbook_Openを使用しているのに、何故呼び出される側ではAuto_Openなのか? 呼び出される側もWorkbook_Openに Sheets("Sheet2").Select で良いと思うのですが。

coral_japan
質問者

お礼

お答えありがとうございます。 Workbook_Openを知りませんでした。 勉強不足です。大変参考になりました。

その他の回答 (3)

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.3

>普通にBookを開くとSub Auto_Open()は実行されますが、”Workbooks.Open”では実行されません。 それは仕様です。 で、そういう処理をしたいときはふつうは Sub Auto_Open ではなくて ThiwWorkbookモジュールの、Workbook_Openイベントに書きます。 '--------------------------------- Private Sub Workbook_Open()   Sheets("Sheet3").Select End Sub '---------------------------------- 以上。

coral_japan
質問者

お礼

お答えありがとうございました。 大変参考になり、助かりました。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

Auto_Open は手動で開いた場合は実行されますがマクロで開く場合は実行されません。 他のファイルからマクロで開くときに Auto_Open を実行する場合は RunAutoMacros を使います。 サンプルです。     Sub test()     Workbooks.Open "Test.xls"     Workbooks("Test.xls").RunAutoMacros xlAutoOpen     End Sub

coral_japan
質問者

お礼

お答えありがとうございました。 大変参考になりました。

  • keirika
  • ベストアンサー率42% (279/658)
回答No.1

アクティブにしたいシート名をSheet3とします。 Workbooks.Openの後にActiveWorkbook.Sheets("Sheet3").Activate を追加してはどうでしょうか。

coral_japan
質問者

お礼

お答えありがとうございました。 大変参考になり、助かりました。

関連するQ&A

  • Auto_Openマクロ

    Excel2003のマクロで、 Sub Auto_Open() ActiveSheet.DisplayAutomaticPageBreaks = True End Sub としているのですが、起動時に開くシートにしか適用されません。 ページが増えていくのでブック内の全シートに適用するにはどうしたらいいでしょうか?

  • Excelマクロで同じブックにCSVを読み込むには

    Excelの指定したシートにCSVファイルを読み込ませたいのですが 以下のVBAマクロを実行すると新しいブックが起動して 新しいブックの方にCSVファイルが読み込まれてしまうのですが これをVBAマクロを実行しているブックの指定のシート(例えばSheet3など)に 読み込ませたいのですがどのように記述すればよいのでしょうか。 よろしくお願いします(Excel2010) Sub Macro1()  ChDir "C:\test"  Workbooks.Open Filename:= "test1.csv" End Sub

  • Openメソッドについて

    ブックAのSheet1にあるセルのデータをブックBのSheet1のセルにコピーするために、以下のようにOpenメソッドを使ったVBAを記述してみたのですが、エラーコード1004「指定されたファイルが存在しません」のようなエラーメッセージが出てきました。Openメソッドが使われている例を見ているとどうやらブックのあるフォルダを指定しているような感じがするのですが、Openメソッドは具体的に該当のブックのある場所を指定しなくてはならないのでしょうか??(私がVBAを記述するにあたり参考にしたインターネットのVBAを紹介するページでは、ブックのある場所を指定せず、私が記述したように直にブック名を入力していました。) お忙しい中申し訳ないのですが、どなたかご教授いただけると、とても嬉しいです!よろしくお願いいたします。 Sub ブックAのデータをブックBに() With Workbooks.Open("ブックA.xlsx")  .Sheets("Sheet1").Range("E8").Value = _ ThisWorkbook.Range("C2").Value End With End Sub

  • VBA Workbooks.open

    ブックを開くコマンド × Workbooks("filename.xls").open ○ Workbooks.open filename:="filename.xls" 何故下なのですか?ワークブックコレクションの中から特定のブックを指定し開くなら、上の構文にした方がワークシートコレクション等と構文表現を統一出来ます。 現にブックを閉じるコマンドは Workbooks("filename.xls").close です。何故ブックを開くコマンドだけ別表現なのですか?

  • アクセスでauto_openは使えない?

    エクセルの場合は、ブックを開いたと同時にマクロを実行させたい時は、 auto_openと言うマクロを標準モジュールに作れば可能ですが、 アクセスVBAの標準モジュールに、auto_openというプロシージャーを作って、 アクセスを再起動しても何も起こりません。 アクセスにおいて ファイルの起動と同時にマクロを実行させたいのなら、 どこかのフォームのOpenイベントに実行させたいコードを記載して、 起動時の設定で、そのフォームを選択するしかないのでしょうか?

  • Excelマクロの自動実行で新規ブックを保存せずに表示したい

    以下のようなマクロを作成しました。 これを、TEST.xls として保存し、サーバに登録しました。 これをwebサイトで <a href="TEST.xls">実行する</a> のようにして ダウンロードし実行しても、strNEWBKNM が表示されずに終了してしまいます。 auto_open をやめて、ダウンロード後に「ツール」→「マクロ」でマクロを実行すると strNEWBKNM が表示された状態で終了するのですが、 auto_open でも strNEWBKNM が表示された状態で終わらせたいです。 (保存はしたくありません。あくまで表示で終わらせたいです) どのようにしたらよいか、お分かりになる方がいらっしゃいましたら 教えてください。よろしくお願いします。 Sub auto_open() Dim strWKBKNM As String 'このブック名 Dim strNEWBKNM As String '新しいブック名 strWKBKNM = ThisWorkbook.Name '*** このブックの名前を設定 Workbooks.Add '*** 新しいブックを追加 strNEWBKNM = ActiveWorkbook.Name '*** 新しいブックの名前を設定 Sheets("Sheet1").Activate Range("A1") = "aaaaaa" Workbooks(strNEWBKNM).Activate Workbooks(strWKBKNM).Close SaveChanges:=False End Sub

  • VBA auto_openでApplication.onKeyを実行できない

    お世話になります。 表題のとおり、Excel起動時に、上書き保存や名前を付けて保存等の 機能をショートカットから実行できなくするように、auto_openで 処理をさせたいのですが、実行時にエラーが出てしまいます。 下記にそのソースを記述します。 Private Sub Auto_Open() Application.OnKey "F12", "" End Sub 正確には、ショートカットを無効にするタイミングはブック自体を 開いてから後でも構わないのですが、やはり同じようにエラーが 出ます。 どうしてエラーになるのか、どうすれば正常に動作するのか 教えてください。 以上、宜しくお願い致します。

  • エクセル VBA 「Sub Auto_Open()」 について

    エクセル2003を使用しています。 VBAで、下記のように、起動時にメッセージを表示させているのですが、 表示されたダイアログの「OK」を押さないと、ダイアログが消えないのと同時にエクセルの編集ができません。 --------------------- Sub Auto_Open() MsgBox "******" End Sub --------------------- このダイアログを、指定した時間で、自動で消えるようにできるのでしょうか? ご教授いただけます方、どうぞ、よろしくお願い申し上げます。m(_ _)m

  • Excel2007で2003のVBAが実行時エラー1004

    普段は事務員の非プログラマーです。 Excel2000,2003で動いていたマクロを2007でも動くようにしてほしいと言われて頑張っているのですが、どうすればいいのか見当がつきません(*_*) どうぞ知識者の皆様のお知恵をお貸しください。 Excel2003で読み取りのみのVBAのファイルで、ボタンを押すとマクロが実行され、別CSVファイルを指定しVBAのファイルの別シートとして読み込みます。次に別txtファイルを指定してVBAのファイルの別シートに読み込みます。最後にその2つのシートの必要な個所のみ結合して、新しいcsvファイルとして保存する処理をしています。 Excel2007でこれを実行すると、csvファイルを読み込むときに次のようなエラーがでます。 「実行時エラー'1004':移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入できません。データを別のブックに移動またはコピーするには、データを選択して、[コピー]コマンドと[貼り付け]コマンドを使用して移動先またはコピー先のブックのシートに挿入してください。 マクロの中身はこのような感じです。 エラーは最終行の「ActiveSheet~」ででています。 Sub openExcel() 'Step1 open excel Dim ExcelFileOpen As String ExcelFileOpen = Application.GetOpenFilename(FileFilter:="Excel Files,*.csv") If ExcelFileOpen <> "False" Then Workbooks.OpenText Filename:=ExcelFileOpen ActiveSheet.Move After:=Workbooks(ThisWorkbook.Name).Sheets(1) どうぞよろしくお願いいたします(_ _)

  • エクセルで上書保存時に自動実行するマクロって?

    Excel2000です。 ブックを開いた時に自動実行させるには、 Sub Auto_Open() で、作成すれば良いですが、 上書保存した際に、マクロを自動実行させるにはどうすれば良いのでしょうか?

専門家に質問してみよう