アクティブなワークブックを参照
現在使用中のワークブック、複数ある場合は一番手前にあるワークブックを参照するには、ActiveWorkbook プロパティ を使用します。
object.ActiveWorkbook
引数・戻り値
- object ・・・ 対象となる Application オブジェクト を指定します。
 
アクティブなブックの名前を取得・設定するには?
     (例)
      ActiveWorkbook.Name
ワークブックを参照する
現在開いているすべてのワークブックを参照するには、Workbooks プロパティ を使用します。
    <すべてのワークブックを参照>
    object.Workbooks
    <特定のワークブックを参照>
    object.Workbooks[.Index ] ( index )
引数・戻り値
- object ・・・ 対象となる Application オブジェクト を指定します。
 - Item プロパティ は、デフォルトプロパティなので省略可能です。
 - index  ・・・  インデックス番号またはワークブックの名前を指定します。
(例)
Workbooks.Item(1)
Workbooks(“Test.xlsx”) 
インデックス番号は、ブックを開いた順に、1,2,3,… と番号が振られます。
ワークブックの名前を取得・設定するには?
     (例)
      Workbooks(1).Name
      Workbooks(“Test.xlsx”).Name
ウィンドウを参照する
現在開いているウィンドウを参照するには、Windows プロパティ を使用します。
    <ウィンドウを参照>
    object.Windows
    <特定のウィンドウを参照>
    object.Windows[.Index ] ( index )
引数・戻り値
- object ・・・ 対象となる Application オブジェクト または、Workbook オブジェクト を指定します。
 - Item プロパティ は、デフォルトプロパティなので省略可能です。
 - index  ・・・  インデックス番号またはワークブックの名前を指定します。
(例)
Windows.Item(1)
Windows(“Test.xlsx”) 
インデックス番号は、一番手前のウィンドウから順に、1,2,3,… と番号が振られます。ウィンドウの位置が変わるたびにインデックス番号は変化します。
ワークブックの名前を取得・設定するには?
     (例)
      Windows(1).Caption
      Windows(“Test.xlsx”).Caption
対象オブジェクトが、Application オブジェクト の場合、開いている全てのウインドウが含まれます。Workbook オブジェクト の場合、そのブックのウィンドウのみ含まれます。
マクロを実行中のブックを参照する
現在実行中のマクロが記述されているブックを参照するには、ThisWorkbook プロパティ を使用します。
object.ThisWorkbook
引数・戻り値
- object ・・・ 対象となる Application オブジェクト を指定します。
 
インデックス番号は、一番手前のウィンドウから順に、1,2,3,… と番号が振られます。ウィンドウの位置が変わるたびにインデックス番号は変化します。
マクロ実行中のブックの名前を取得・設定するには?
     (例)
      ThisWorkbooks.Name
ActiveWorkbook, Workbooks, Windows, ThisWorkbook プロパティ 使用例
サンプルVBAソース 1
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19  | 
						Sub Sample_Book()     Dim myStr As String     'ActiveWorkbook(アクティブなブック)、Workbooks(1)(最初に開いたブック)、     'Windows(1)(最も手前にあるブック)、ThisWorkbook(マクロ実行中のブック)     myStr = "ActiveWorkbook:" & vbTab & ActiveWorkbook.Name & vbCrLf & _             "Workbooks(1):" & vbTab & Workbooks(1).Name & vbCrLf & _             "Windows(1):" & vbTab & Windows(1).Caption & vbCrLf & _             "ThisWorkbook:" & vbTab & ThisWorkbook.Name     MsgBox myStr End Sub  |