「excel vba 複数シート選択 配列変数」
といった検索キーワードに気づきました。
Excel VBAで、配列変数を使って複数のシートを選択するには、どのようなコードを書けばいいのかを探していた方による検索です。
配列を使わずにループ処理の中で選択を繰り返すほうがいいのではないか、という気もしますが、
「excel vba 複数シート選択 配列変数」
という要望なので、配列変数を使って複数シートを選択する簡単なプロシージャをご紹介しておきます。
複数シートを文字列型の配列変数で選択するサンプルマクロ
下図のようなシートが存在しているときに、
以下のSubプロシージャを実行すると、「Sheet1」「Sheet3」シートを選択できます。
Dim arr(1 To 2) As String
arr(1) = "Sheet1"
arr(2) = "Sheet3"
Sheets(arr).Select
End Sub
文字列データを格納する要素が2つの配列変数を宣言しておいてから、
Dim arr(1 To 2) As String
その配列にシート名を代入し、
arr(1) = "Sheet1"
arr(2) = "Sheet3"
配列を使って選択を行っています。
Sheets(arr).Select
マクロ記録でできるコードとの比較
「Sheet1」「Sheet3」シートを選択する操作をマクロ記録すると、
Sheets(Array("Sheet1", "Sheet3")).Select
というコードが作られます。
このコードではSheetsプロパティの引数に「Array("Sheet1", "Sheet3")」と、Array関数を使って、シート名を配列要素として持つ配列を作っています。
これをばらしたのが、上記の、
arr(1) = "Sheet1"
arr(2) = "Sheet3"
Sheets(arr).Select
です。
複数シートを数値型の配列変数で選択するサンプルマクロ
シート名ではなく、インデックス番号を使うこともできます。
Dim arr(1 To 2) As Long
arr(1) = 2
arr(2) = 3
Sheets(arr).Select
End Sub
上記のSubプロシージャを実行すると、2枚目と3枚目のシートが選択されます。
最終更新日時:2018-09-16 14:02
- Newer:VBAでシート名をヘッダーに
- Older:Word VBAでページ設定を表すPageSetupオブジェクトを取得する
Home » エクセルマクロ・Excel VBAの使い方 » 配列 » 複数シートを配列変数で選択する