Home » エクセルマクロ・Excel VBAの使い方 » 配列 » 複数シートを配列変数で選択する

複数シートを配列変数で選択する

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「excel vba 複数シート選択 配列変数」
といった検索キーワードに気づきました。

Excel VBAで、配列変数を使って複数のシートを選択するには、どのようなコードを書けばいいのかを探していた方による検索です。

[スポンサードリンク]

配列を使わずにループ処理の中で選択を繰り返すほうがいいのではないか、という気もしますが、
「excel vba 複数シート選択 配列変数」
という要望なので、配列変数を使って複数シートを選択する簡単なプロシージャをご紹介しておきます。

複数シートを文字列型の配列変数で選択するサンプルマクロ

下図のようなシートが存在しているときに、

以下のSubプロシージャを実行すると、「Sheet1」「Sheet3」シートを選択できます。


Sub 配列変数で複数シートを選択する_シート名()
 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
です。

複数シートを数値型の配列変数で選択するサンプルマクロ

シート名ではなく、インデックス番号を使うこともできます。


Sub 配列変数で複数シートを選択する_インデックス番号()
 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

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » 配列 » 複数シートを配列変数で選択する

TrackBack:0

TrackBack URL

Home » エクセルマクロ・Excel VBAの使い方 » 配列 » 複数シートを配列変数で選択する

「配列」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.