こんにちは!りゅう(@ryupong_b)です。
今回は、ブックを参照する方法を解説します。
今回は、ブックを参照する方法をご紹介します。
ブックを参照するには、「このブックに対して処理したいけど、どうしたらいいんだろう…。」のような悩みを解決します。
本記事では、サンプルコードを用いてコピペで使える実践的なコードもご紹介します。
- ブックを参照する3つの方法が分かります。
- 基本的な構文や引数まで、丁寧に解説します。
- サンプルコードを用いてコピペで使える実践的なコードもご紹介します。
前提
# | プロパティ | 説明 |
---|---|---|
1 | Workbooks | 特定のブックを参照する |
2 | ActiveWorkbook | アクティブブックを参照する |
3 | ThisWorkbook | 実行中のVBAコードが記述されているブックを参照する |
基本情報
Workbooksプロパティ
特定のブックを参照するには、Workbooksプロパティを使用します。
引数に、どのブックを参照するかを指定します。
構文
Workbooks(Index)
※緑色は引数です。
引数
# | 項目名 | 必須/任意 | 説明 |
---|---|---|---|
1 | Index | 任意 | インデックス番号、またはブック名を指定します。 省略した場合は、開いているすべてのブックを参照します。 |
インデックス番号とは
ブックを開いた順番に自動的に割り振られる数字です。
1、2、3…と、1からの番号が割り振られます。
存在しないインデックス番号、開いていないブック名を指定するとエラーとなります。
存在するブックを参照するようにしてください。
ActiveWorkbookプロパティ
Active状態のブックを参照するには、ActiveWorkbookプロパティを使用します。
Applicationオブジェクト配下のプロパティですが、通常では以下構文のように省略して記載します。
ActiveWorkbook
ThisWorkbookプロパティ
実行中のVBAコードが記述されているブックを参照するには、ThisWorkbookプロパティを指定します。
Applicationオブジェクト配下のプロパティですが、通常では以下構文のように省略して記載します。
ThisWorkbook
サンプルコード
指定のブックを参照する
Public Sub referenceBook()
' アクティブシート名を A1セルに出力する
Range("A1").Value = ActiveWorkbook.Name
' インデックス番号「2番」のブック名をアクティブにする
Workbooks(2).Activate
' 開いているブック「Book1.xlsx」をアクティブにする
Workbooks("Book1.xlsx").Activate
' 実行中のVBAコードが記述されているブック名をアクティブにする
ThisWorkbook.Activate
End Sub
最初/最後に開いたブックを参照する
Public Sub referenceWorkbookForRelative()
' 最初に開いたブックをアクティブにする
Workbooks(1).Activate
' 最後に開いたブックをアクティブにする
Workbooks(Workbooks.Count).Activate
End Sub
ご紹介したコードでは、ブックを参照後にアクティブにするコードを掲載しています。
あくまで参考例ですので、参照後にどういった処理を実施するかは用途により変更してください。
最後に
今回は、ブックを参照する方法をいくつかご紹介させて頂きました。
この記事が、皆さんのお力になれば幸いです!
コメント