サイトアイコン 独学エクセル塾

【マクロVBA】別のシートをアクティブ・選択する方法!順・すべて・複数のシート・selectの違い

データの反映を別のシートにしたいときや入力と出力でシートを分けているシステムには
アクティブシートを変更する作業が発生します。

そこで今回は様々なシートをアクティブ・選択する方法についてまとめてみました。

使用する頻度も高いと思いますので是非参考にしてみてください。

それでは見ていきましょう。




■シートをアクティブにする仕組み

まずシートをアクティブにする仕組みについて説明します。

対象のシート名でアクティブにする方法
Sheets("シート名").Activate

シートの順でアクティブにする方法
Sheets(シートの順).Activate

すべてのシートをアクティブにする方法
Worksheets.Select

上記のようにシートのアクティブには様々な方法があります。では1つずつ説明します。

■シート名を直接プログラムに入力してアクティブにする方法

こちらが1番なじみやすい形です。

使用方法は下記の見本のようになります。

Sheets(“アクティブにしたいシート名“).Activate

「Sheets」と.「Activate」の間にシート名を選択するだけです。

例えば現在「123」というシートをアクティブにしている状態ですが
いろは」をアクティブにしてみましょう。

プログラムはこのようになります。

Sub シート名から別シートをアクティブにする()

Sheets(“いろは“).Activate

End Sub

結果はこのようになりました。

いろは」のシートがアクティブになっていますね。

うまく機能してくれています。

■シートの順番を指定してアクティブにする

今度はシート順を参考にしてアクティブにする方法です。
1番右にメインシートを置いておき、メインシートをアクティブにしたいときに使えますね。

Sheets(左から数えてアクティブにしたいシートの番号).Activate

こちらも至ってシンプルです。

「Sheets」と「Activate」の間に左から数えたシートの順番を選択するだけです。

今回も「123」というシートをアクティブにしている状態とし、
左から3番目の「ABC」をアクティブにしてみましょう。

プログラムはこのようになります。

Sub シート順から別シートをアクティブにする()

Sheets(3).Activate

End Sub

結果は…

3つ目のシートにあたる「ABC」のシートがアクティブになっていますね。

狙い通りですね。

■すべてのシートをアクティブにする

今度はすべてのシートをアクティブにする方法です。

方法は下記の通りです。

Worksheets.Select

シンプルですが、これだけで大丈夫です。

変化点として選択するシートが複数になる場合はSelectになります。

プログラムはこのようになります。

Sub 全てのシートをアクティブにする()

Worksheets.Select

End Sub

結果は…

全てのシートが選択できてますね。

■指定した複数のシートをアクティブにする

最後は指定した複数のシートをアクティブにする方法です。
今回も複数なのでSelectになってます。

仕組みはこちら

Sheets(Array(“アクティブにしたいシート①”, “アクティブにしたいシート②”)).Select

見本は2個になってますが何個でも構いません。
ちなみに順番でもできます。

Sheets(Array(1,3)).Select

上記のプログラムだと1番目3番目のシートが選択されます。

Sub 1番目と3番目のシートをアクティブにする()

Sheets(Array(1, 3)).Select

End Sub

結果は….

狙い通り「1番目」と「3番目」のシートがアクティブになりました。

⬛︎公式

わかりやすいように説明したため公式と使用する語句が異なりますが
マイクロソフト公式の説明については下記のリンクを参照してください。☟

Worksheet.Activate メソッド (Excel) | Microsoft Learn

■まとめ

いかがだったでしょうか。
機能や仕組みを増やすと別シート選択は必要になってきます。

身につけると別シートの数値をコピペできたり
別シートに張り付けができたりすることができます。

ぜひ活用してみてください。

では次の記事でお会いしましょう。記事はこちらから☟

【マクロVBA知識 13】別のブックをアクティブ・現在開いているブックを記憶する ► 独学エクセル塾 (dokugakuexcel.com)

モバイルバージョンを終了