Excelのマクロを記述するVBAにおいて、
Worksheets
Workbooks
Windows
などは、それぞれ
ワークブック中の複数のワークシート
開いている複数のワークブック
1個のワークブックが表示する複数のWindow
を示すもので、コレクションと呼ばれている。
コレクションの中の特定のひとつを指定するには、
Worksheets("Sheet1")
Workbooks("testfile.xls")
Windows("testfile.xlsx - 1") (注1)
などのようにそれぞれの名前を””で囲って示す。
この方法以外に、
Worksheets(1)
Workbooks(1)
Windows(1)
のように番号(Index)を付けて示すやり方もある。
この際の番号の付き方には注意が必要である。
Worksheets :左から順に1,2,3…
Workbooks :開いた順に1,2,3…
(最初に開いたものが1)
Windows :Activeteされたのが最近のものから1,2,3…
(最後にActiveteしたものが1)
Windowsでは、現在Activeなウィンドウ以外をActivateすると、
それぞれのウィンドウの番号が変化してしまう。
ウィンドウを切替ながら処理を行う場合など、毎回番号が変わる
ので注意が必要である。
2つのウィンドウを開いている場合では、常に
Active となっているものが1
Active となっていないものが2
となる。
なお、WorksheetsやWorkbooksも、新たに後ろにシートを追加
したり、ワークブックを開いたりする場合は、それまでのものの
番号は変わらないが、一番右以外のシートの削除や追加の場合、
最後に開いたもの以外を閉じた場合には、番号の付け替えが起こる。
(注1)
Windowsコレクションの場合は、
上述のようにファイル名の後に
空白・ハイフン・空白・番号
が付くケースと、
Windows("testfile.xlsx:1")のように
コロン・番号
が付くケースがある。
実際に、
表示タブ>(ウィンドウ)>新しいウィンドウを開く
とやって新たなウィンドウを開いたときに、
上部の名前の所にどちらが出るかで判断する。
Worksheets
Workbooks
Windows
などは、それぞれ
ワークブック中の複数のワークシート
開いている複数のワークブック
1個のワークブックが表示する複数のWindow
を示すもので、コレクションと呼ばれている。
コレクションの中の特定のひとつを指定するには、
Worksheets("Sheet1")
Workbooks("testfile.xls")
Windows("testfile.xlsx - 1") (注1)
などのようにそれぞれの名前を””で囲って示す。
この方法以外に、
Worksheets(1)
Workbooks(1)
Windows(1)
のように番号(Index)を付けて示すやり方もある。
この際の番号の付き方には注意が必要である。
Worksheets :左から順に1,2,3…
Workbooks :開いた順に1,2,3…
(最初に開いたものが1)
Windows :Activeteされたのが最近のものから1,2,3…
(最後にActiveteしたものが1)
Windowsでは、現在Activeなウィンドウ以外をActivateすると、
それぞれのウィンドウの番号が変化してしまう。
ウィンドウを切替ながら処理を行う場合など、毎回番号が変わる
ので注意が必要である。
2つのウィンドウを開いている場合では、常に
Active となっているものが1
Active となっていないものが2
となる。
なお、WorksheetsやWorkbooksも、新たに後ろにシートを追加
したり、ワークブックを開いたりする場合は、それまでのものの
番号は変わらないが、一番右以外のシートの削除や追加の場合、
最後に開いたもの以外を閉じた場合には、番号の付け替えが起こる。
(注1)
Windowsコレクションの場合は、
上述のようにファイル名の後に
空白・ハイフン・空白・番号
が付くケースと、
Windows("testfile.xlsx:1")のように
コロン・番号
が付くケースがある。
実際に、
表示タブ>(ウィンドウ)>新しいウィンドウを開く
とやって新たなウィンドウを開いたときに、
上部の名前の所にどちらが出るかで判断する。