オーロラさんの勉強帳

33歳、未経験からIT業界へ。SESのロースキル客先常駐勤務。データベース、Excel、Excel VBA、ネットワーク、LinuxなどIT関連のことを主に書いていきます。

VBA 再入門15 part1 メソッド(Select・Activate)

 

 以前紹介したSelectionプロパティ、ActiveCellプロパティと本記事のSelectメソッド、Activateメソッドを比べてもらうと、メソッドとプロパティの比較や理解がしやすいかもしれません。

auroralights.hatenablog.com

 

Selectメソッド

Selectメソッドは、指定したセルを選択します。

※SelectメソッドとActivateメソッドは単体セルを指定する場合は、同じ動きをします。

 

以下のコードを実行すると、セルA5が選択されます。

f:id:auroralights:20201203205951p:plain

 

以下のコードを実行すると、セルA1:B10が選択されます。

※Range型変数「rng」にセルA1:B10を代入しています。

f:id:auroralights:20201203210345p:plain


Selectメソッドの注意点

Selectメソッドは、アクティブでないワークシートのセルを選択しようとすると以下のような「実行時エラー'1004' RangeクラスのSelectメソッドが失敗しました。」になってしまいます。

f:id:auroralights:20201203210749p:plain


 以下のようにSheet3が選択されている(アクティブな)状態で、Sheet1のセルを選択しようとすると、上記の実行時エラー1004がでてしまいます。

f:id:auroralights:20201203211013p:plain

 

解決方法は、以下のようにSelectで選択するSheet1をあらかじめActivateメソッドでアクティブにすることです。

f:id:auroralights:20201203211159p:plain

 

Activateメソッド

Activateメソッドは、指定したセルをアクティブにするメソッドです。

単体のセルを指定する場合は、SelectメソッドとActiveメソッドは同じ動きをします。

 

以下のコードではセルA5が選択されます。

f:id:auroralights:20201203211719p:plain

 

以下のコードを実行すると、セルA1:C6が選択されます。
※アクティブなセルはセルA1の1つだけです。

f:id:auroralights:20201203212105p:plain

 

Activateメソッドの特徴として、上のコードに「Range("B5").Activate」を付け加えると、選択したセル範囲の中でアクティブなセルを変更することができます。

f:id:auroralights:20201203212238p:plain