Activateでブックやシートをアクティブにしよう!【VBA】

VBA

「VBAで2つ目のシートのデータを使いたい!」
それ、Activateで指定できます。
この記事では、ブックやシートをアクティブにする方法を解説します。

VBAのActivateとは

VBAのActivateとは、指定したブックやシート、セルをアクティブにするために使います。
アクティブブックやアクティブシート、アクティブセルと呼ばれます。
しかし、そもそもアクティブとはどんな状態なのでしょうか。
一番手前にある状態、操作の対象となっている状態をアクティブといいます。

VBAでアクティブにする方法

では、VBAでブックやシート、セルをアクティブにする方法を見ていきましょう。

ブック

まずは、ブックをアクティブにしてみましょう。
「Workbooks(“ブック名”).Activate」でアクティブにすることができます。
ブックは、Excelファイルのことで、拡張子(.xlsx、.xlsm)まで記載する必要があります。
例えば、「VBA練習.xlsm」というファイルをアクティブにする場合は、以下のようにします。

Workbooks("VBA練習.xlsm").Activate

シート

次はシートをアクティブにする方法です。
「Worksheets(“シート名”).Activate」もしくは「Sheets(“シート名”).Activate」を使います。
また、シート名は番号で指定することもできます。
例えば、デフォルトのシートでは、(“Sheet1”)は(1)となります。
以下の図のようなExcelファイルでSheet3をアクティブにする方法を見てみましょう。

▼Worksheets + シート名を使う場合

Worksheets("Sheet3").Activate

▼Sheets + シート番号を使う場合

Sheets(3).Activate

上記のどちらを使っても、Sheet3をアクティブにすることができます。
また、WorksheetsかSheets、シート名かシート番号は、どの組み合わせでも使えます。

セル

最後はセルをアクティブにする方法です。
セルも同じように「.Activate」をつけることでアクティブにすることができます。
このとき、セルの指定は「Range」でも「Cells」でも構いません。
例えば、B2セルをアクティブにしたいときは、以下のように書きます。

▼Rangeを使う場合

Range("B2").Activate

▼Cellsを使う場合

Cells(2, 2).Activate

上記のどちらを使ってもセルがアクティブになります。
しかし、範囲指定をしたいときには、Activateは使えないことに注意しましょう。
A1セルからB3セルまでの範囲を指定する場合、以下のように記載しても選択されません。

▼選択されない間違った例

Range("A1:B3").Activate

範囲選択にはSelectを使います。
次の章で、具体的に説明します。

ActivateとSelectの違い

ActivateとSelectはどちらもセル等を指定するものです。
しかし、用途が異なります。
上記のセルをアクティブにするところで、少し出てきましたが、Selectは範囲指定に使えます。
例えば、Selectを使って以下のように範囲を指定してみましょう。

Range("A2:B3").Select

上記の結果がこちらです。

この場合、Selectで選択されたのがA2セルからB3セルまでの範囲です。
このうち、A2セルだけが白くなっていますよね。
ここが操作対象のセル、アクティブセルになります。
Activateは1つだけ、Selectは範囲も指定できるというところが違いです。

まとめ

最後まで読んでいただきありがとうございます。
VBAでは同じ処理をするのにも、いくつも書き方がある場合もあります。
ActivateとSelectも似た表現にはなりますが、違いを踏まえて使い分けていけるようになりましょう。
VBAを学ぶみなさまのお役に立てていれば嬉しいです。

コメント

Copied title and URL