教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA シート操作】複数のシートを選択(Select)するにはどうすればいいの?教えて!

f:id:m_kbou:20200418162549p:plain

複数のシートを同時に選択するには、Array関数を使用した配列で指定します。指定方法には、「シート名で指定する方法」と「インデックス番号を使用して指定する方法」の2パターンがあります。この複数のシートを選択する方法について紹介します。

 

 

構文

記述方法は以下の通りとなります。

SheetsArray(”[シート名]”,”[シート名]”)).Select

SheetsArray[インデックス番号][インデックス番号])).Select

[説明]:

複数のシートを選択したい場合はArray関数を使用し、

 ・SheetsArray(”[シート名]”,”[シート名]”)).Select

 ・SheetsArray[インデックス番号][インデックス番号])).Select

のいずれかで記述します。
記述の方法として、[シート名]で指定する場合はシート名を記述し「”」(ダブルクォーテーション)で囲みます。また、[インデックス番号]で指定する場合は数値で記述します。[インデックス番号]は、左から何番目のシートであるかで記述します。内容を纏めると、「[シート名]又は[インデックス番号]で指定した複数シートを選択して下さい。」との意味になります。

[記述例]:

Sheets(Array("Sheet2", "Sheet3")).Select
Sheets(Array(2, 3)).Select

 

使い方

使い方について具体的に説明していきます。

Array関数を使用したシート名を指定する場合の記述方法

シート名を指定する場合の記述方法について説明します。

[プログラミング例]:

Sub サンプル()
    Sheets(Array("Sheet2", "Sheet3")).Select
End Sub

内容は、「Sheet2及びSheet3シートを選択して下さい。」との意味になります。

f:id:m_kbou:20210227192536p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①<実行>ボタンはSheet1シートに登録されており、上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210227192549p:plain

②Sheet2及びSheet3シートが選択されます。

f:id:m_kbou:20210227192602p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

シート名を指定する場合の記述方法についての説明は以上です。

 

Array関数を使用してインデックス番号を指定する場合の記述方法

インデックス番号を指定する場合の記述方法について説明します。

[プログラミング例]:

Sub サンプル()
    Sheets(Array(2, 3)).Select
End Sub

内容は、「Sheet2及びSheet3シートを選択して下さい。」との意味になります。
※左から2番目と3番目のシートを選択する為、インデックス番号は2と3になります。

f:id:m_kbou:20210227193046p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①<実行>ボタンはSheet1シートに登録されており、上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210227192549p:plain

②Sheet2及びSheet3シートが選択されます。

f:id:m_kbou:20210227192602p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

インデックス番号を指定する場合の記述方法についての説明は以上です。

 

おわりに

今回は複数のシートを選択する方法について説明しました。上記の説明では、シート名で指定した場合とインデックス番号で指定した場合とで同じ結果となる様に記述してみました。また、類似の内容としてブック内の全てのシートを選択する方法もあります。是非こちらも参考にしてみて下さい。