注目キーワード
  1. VBA
  2. 関数
  3. ショートカット

【VBA】別ブックやシートを指定する方法【入門】

  • 2019年3月2日
  • 2019年4月5日
  • VBA
  • 38回
  • 1件
VBA NO IMAGE

みなさん、こんにちは!

Excelで自動化していますか?

前回の記事ではVBAでの

SpecialCellsメソッドで特定の種類のセルを選択する方法を紹介しました。

今回の記事では、

別のシートやブックのセルを指定する方法

Gotoメソッドで別シートやブックのセルを指定する方法

以上を紹介します。

VBAではアクティブシート以外のシートやブックのデータと連携して操作する場合が多いので
必ず使う指定方法なのでこの記事を読んで覚えていってください。

別シートやブックのセルを指定する

現在作業中のワークシートではなく、別のシートや別のブック上のセルを操作することも可能です。ただし、ActiveメソッドやSelectメソッドで、それらのセルを直接選択することはできません。ここでは、それらのセルの値を調べてから表示させてみましょう。

別のワークシートのセルの値を表示する

別のワークシート上のセルは、そのシートを表すWorkSheetオブジェクトを対象としたRangeプロパティなどで、Rangeオブジェクトとして取得できます。特定のWorkSheetオブジェクトは、WorkSheetsプロパティでWorkSheetsコレクションを取得して、そのインデックス番号やシート名を指定すれば、取得することができます。

・実行結果

 

・セル参照で別シートを指定する

Excelの数式で他のシートにあるセルを参照する場合はセル参照の前に「!」を付けてシート名を付けます。VBAでもRangeプロパティの引数にこの形式の参照文字列を指定すると別シートのセルを参照できます。

 

別ブックのセルの値を表示する

別のブックのセルを操作するには、まずWorkbooksプロパティでWorkbooksコレクションを取得し、そのインデックス番号かブック名を指定して、目的のブックを表すWorkbookオブジェクトを取得します。次にWorkSheetsプロパティでシートを指定し、さらにRangeプロパティなどでRangeオブジェクトを取得します。

・実行結果

 

別ブックで作業中のシートの値を表示する

別ブックで現在表示されているワークシート(アクティブシート)は、WorkbookオブジェクトのActiveSheetプロパティで、WorkSheetオブジェクトして取得できます。

・実行結果

 

特定のセルへジャンプする

他のワークシートやブックのセルは、ActiveメソッドやSelectメソッドで直接選択することはできず、選択するにはまず目的のシートを表示する必要があります。しかし「選択」ではなく、「ジャンプ」という機能で、別シートのセルを直接選択することが可能です。

別シートのセルを直接選択する

特定のセルへジャンプするには、ApplicationオブジェクトのGotoメソッドを使い、引数Referenceに目的のセルを表すRangeオブジェクトを指定します。別のワークシートやブックのセルを指定したい場合は、そのWorkSheetオブジェクトやWorkbookオブジェクトを指定することで、直接ジャンプできます。

・実行結果

ジャンプ機能について

ApplicationオブジェクトのGotoメソッドは、「ホーム」タブの「編集」グループの「検索と選択」から選択できる「ジャンプ」という機能に相当します。この機能を実行すると「ジャンプ」ダイアログボックスが表示され、ジャンプ先のシートやセルを直接指定できます。また、この機能を使ってセルを移動すると、その直前に選択されていたセルがこのダイアログボックスに記録されていくので、ジャンプする直前のセルに簡単に戻ることができます。

まとめ

今回は、別シートやブックを指定する方法を紹介しました。

通常は省略したオブジェクトを使用していますが、省略せずに記述すると別シートやブックの情報を取得できます。

記述が長くなってしまうので同じコード中に繰り返し使う場合は変数などを使っていきましょう。

前の記事から読み直す場合はこちらです。

【VBA】SpecialCellsメソッドで特定の種類のセルを指定する方法【入門】

VBAの記事一覧はこちらからです。

【基礎から学べる】ExcelマクロとVBA【入門】

NO IMAGE
最新情報をチェックしよう!