Excelマクロ&VBAでのブックの切り替え方法

このQ&Aのポイント
  • Excelマクロ&VBAにおいて、複数のExcelファイルの中のブックを切り替える方法について初心者が質問しています。
  • 技術評論社の『かんたんExcelマクロ&VBA』を参考にしながら学習中の質問者は、「Section55 ブックの参照」という項目について躓いています。
  • 具体的には、「練習ブック1」という名前のExcelファイルを新規作成し、それを開いた状態でマクロを実行するという指示があり、しかし実行すると「実行時エラー '9': インデックスが有効範囲にありません」というエラーが発生しています。初心者にとって解りにくい点や解決策について詳しく教えてほしいとのことです。
回答を見る
  • ベストアンサー

Excelマクロ&VBAでの質問

全くの初心者です。「技術評論社 かんたんExcelマクロ&VBA(2013/2010/2007/2003対応)」で独習しています。その中に「Section55 ブックの参照」という項目の初めに(1)ブックを参照する●ブックを切り替えるという項目がありまして、そのコードは以下の様に簡単なものです。 Sub ブックの切り替え() Workbooks("練習ブック1").Activate End Sub これを実行すると、複数のExcelファイルの中の"練習ブック1"がアクティブなるというものです。ここで躓き、技術評論社に質問した所、「練習ブック1 という名前でExcelファイルを新規作成し、それを開いた状態でマクロを実行してください。」との回答で、私なりに色々と試してみましたが、実行結果は何れも「実行時エラー '9': インデックスが有効範囲に有りません」とのエラーで困っています、どの様にすれば実行出来るのか(特に"開いた状態"とはどの様な状態なのか?、拡張子は関係するのか?)、何方か具体的に初心者に解りやすく手順をご教授頂ければ幸いです。

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

  • ベストアンサー
  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.1

「練習ブック1.xlsx」というファイルを保存して、開いたままにしておきます。 次に、「練習ブック2.xlsx」というファイルを保存して、やはり開いたままにしておきます。 「練習ブック2.xls」上で、 Sub ブックの切り替え()    Workbooks("練習ブック1.xlsx").Activate End Sub とすると、「練習ブック1.xlsx」がアクティブになりました。 拡張子は、いるみたいですね。 ただ、画面上は、マクロを組んでいる画面のままなので、分かりにくいですが… もしかして、Windowsは標準では、拡張子を表示しない設定になっているので、その設定の場合なら、拡張子を書かなくてもいいとか? なお、「練習ブック1.xlsx」が閉じている場合は、同じエラー(「9」)になりました。

yu28ka14
質問者

お礼

早速の回答を有難うございました。ご指摘の通りにやってみました。見事に実行出来ました。結局拡張子を記述しないと実行結果が得られない(設定?)という事だったようです。的確な回答を有難うございました。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.2

「開いた状態」とは、そのファイルをダブルクリックしたり、起動済みのExcelの「開く」メニューからそのファイルを指定したりして、そのファイルの中身が見えるようになった状態です。

yu28ka14
質問者

お礼

早速の回答を有難うございました。Excelの「ファイル」タブから入ってゆき「開く」で必要ファイルをクリックしたら、「タスクバー」に「開いた状態」で複数格納されるのが良く解りました。初めてだったものですからとまどいましたが、良く解りました。有難うございました。

関連するQ&A

  • Excel マクロ & VBA で教えてください

    Excel マクロ&VBA の教則本で、独習しています。その中の「すべてのブックに対して 処理を繰り返す」との項目で、以下の様な「コード」があります。           Sub 開いているブックに処理を実行( ) Dim 全ブック As Workbook For Each 全ブック In Workbooks 全ブック .Save Next End Sub これを実行すると、以下の「メッセージ」が表示されました。 Microsoft Excel プライバシーに関する注意:このドキュメントは、マクロ、Activexコントロール,XML拡パックの情報、又はWebコンポーネントが含まれています。これらにはドキュメント検査機能で削除することが出来ない個人情報が含まれる場合があります。 そして 「OK」 ボタンをクリックすると VBA に戻り、「キャンセル」ボタンをクリックすると「実行時エラー’1004’:ファイルを保存出来ませんでした」とのメッセージが表示され、「セキュリティー」に問題があるのかと、「セキュリティー」の設定を、教本を見ながら、色々試してみましたが、解決出来ません。どの様にすれば実行出来るのか?御指導御教授の程、よろしくお願い致します。 動作環境は以下の通りです。 ◎OS -- Windows7 ◎Excel -- Microsoft Excel 2010

  • エクセルVBA 非表示シートがあるとエラー

    VBA初心者です。 エクセル2007を使用しております。 同一ブック内にある全てのシートで特定のマクロ(下記の例では×××)を実行するようにVBAマクロを個人用マクロブック上に作成しております。 Sub シート一括処理() Dim Sht As Worksheet For Each Sht In Worksheets Sht.Select Call ××× Next Sht End Sub ブック内に非表示シートがあった場合、エラーとなります。 ===================== 実行時エラー'1004' 'select'メソッドは失敗しました: ===================== 下記のような要件を満たすにはどのように修正すればよいでしょうか。 ・非表示シートに対しても、×××マクロは適応したい。 ・非表示シートは暫定的に表示してもよいが、最終的には非表示の状態にしたい。 よろしくお願いします。

  • Excel VBAエラー”マクロシートに対する・・

    Excel VBAを勉強している者です。VBAプログラムで Sub Iro1() ・・・ End Sub Sub Iro2() ・・・ End Sub という処理のプログラムを作成しエクセルシートにボタンを作りマクロ登録をしようとすると ”マクロシートに対する参照を指定ください”とエラーが出ます。 すみませんが、解決方法を教えてください。

  • Excelで質問です。ListBoxの項目を別bookから読込むには

    Excelで質問です。ListBoxの項目を別bookから読込むには VBA初心者です。 book-AのListBox1からbook-Bのセルの項目を読み込むことは可能なのでしょうか。 Excel2003です。 book-AのUserForm1に下記のコードを実行しても構文エラーになってしまいます。 book-Aとbook-Bは同じフォルダに入っています。出来ればbook-Bを閉じた状態で実行できれば良いのですが Private Sub UserForm_Initialize() ListBox1.RowSource =[book-B.xls]Sheet1!A1:A10 End Sub

  • エクセルのブックを閉じるマクロについて

    エクセルのブックAとブックBが開いている状態で、 ブックAのボタンに登録して実行すると、ブックAのみ閉じる、 というマクロを作りました。(下部にコードを記載します) このマクロは、2つのブックが開いていると正常に稼働するのですが、 ブックが1つしかない場合、実行時エラーが出てしまいます。 (ブックAのみ開いた状態でこのボタンを押してもエラーなく閉じたい) 実行時エラーが出ないようにするにはどうすれば良いか、 おわかりの方がいらっしゃいましたら教えて下さい。 どうぞよろしくお願い致します。 Sub このブックのみ閉じる() Dim wa As String wa = "ほかに無い" Dim wb As Workbook For Each wb In Workbooks If wb.Name <> ThisWorkbook.Name Then wa = "ほかにあるよ" End If Next If wa = "ほかに無い" Then Application.DisplayAlerts = False Application.Quit '終了予定 End If Range("D2").Select Selection.ClearContents ThisWorkbook.Close SaveChanges:=False End Sub

  • Excelのマクロについて

    Excelのマクロについて excel2003で,マクロの自動記録を勉強中です。 [ツール]-[マクロ]-[新しいマクロの記録]でマクロ名を入力し,(マクロの保存先を「作業中のブック」として,)[OK]をクリックすると マクロの記録が始まります。 マクロの記録終了後, [ツール]-[マクロ]-[マクロ]で「マクロ」ダイアログボックスを見ると,マクロ名が表示されます。 この場合は実行も正常にできます。 しかし, ブックを一旦保存した後,開いて,マクロを実行しようと, [ツール]-[マクロ]-[マクロ]で「マクロ」ダイアログボックスを見ると,マクロ名が(マクロ名単独ではなく)ブック名とともに表示されます。 実行するとエラーになります。 何が悪いのか分かりません。なにか基本的なミスがあるのかも知れないと考えました。 原因(ミス)に心当たりのあるかた,是非教えてください。

  • excelのマクロで質問です

    皆様、いつも親切に教えて頂いて、感謝しております。 初心者です。 excelのマクロなんですが、 Private Sub Worksheet_Calculate() で、あるシートにコードの記述があります。 そのワークブックを開いて、同時に他のワークブックで作業すると このコードが実行されて、エラーが出てしまいます。 コードの記載されてるワークブックだけで、このコードを有効にしたいのですがどうすれば良いでしょうか? 文章が拙くすみません。 宜しくお願いします。

  • マクロ VBAについて

    sheet1に試験10、試験20、試験50というマクロがあったとします。 試験10と試験20が実行されていないと試験50のマクロを実行してもマクロが実行されない。 また試験10と試験20が実行されていたら試験50を実行したときに試験50が実行されるような VBAは可能なんでしょうか。 パソコン初心者なんで全くわからない状態です。 ちなみに下記ではだめでした。 ほんと全くわかんないです。 詳しい方どうぞよろしくお願いします。 Sub マクロ() Dim 試験10 Dim 試験20 If 試験10 And 試験20 Then 試験50 End If End Sub

  • エクセル マクロの同時実行について

    エクセルのマクロについての質問なんですが、AというBookのA´マクロを実行しながら、BというBookのB´マクロ、C・・・というように、複数のBookの複数のマクロを同時に実行することは可能でしょうか?可能でしたらどのようにすればいいのか教えてください。  一つのマクロが終わるのに時間か結構掛かるもので、複数できれば能率が上がるのかな?って考えています。マクロ初心者なのでくだらない質問かもしれませんがよろしくお願いいたします。

  • エクセル マクロで自動実行と終了について

    エクセルで作ったマクロを自動実行・自動保存・自動終了したいので、下記のような 記述のマクロをつくり、Windowsのタスク処理で1回/日実行させようとしています。 ----<ここから>------------------------------------ Sub Auto_Open()    :   :   Workbooks("ekuseru.xls").Close SaveChanges:=True End Sub ----<ここまで>------------------------------------ 質問その1  マクロを編集したい場合はどうすればいいのでしょう?  そのBookを開くとマクロが動き出し、保存した上で終了してしまいます。  マクロ無効でBookを開くと「ツール」⇒「マクロ」⇒「マクロ」で「編集」はクリッ  クできないようになってます。 質問その2  マクロが終了するとき、Bookは閉じますがエクセル自体は閉じません。  (意味通じますか?)  エクセル自体を閉じるにはマクロの記述はどうすればいいのでしょう? 以上、よろしくお願いします。