【これだけは覚えて!】SelectとActivateの違いを徹底解説!【Excel VBA】
こんにちは!『ルウちゃんのExcel Labo』管理人の@rouxchanblogです!
今回はこのような悩みについて解説します。
SelectとActivateって何が違うの?
使い方も含めて解説して!
- SelectとActivateの違い
- アクティブ状態とはなにか
- Selectでは使えないメソッドについて←超重要
SelectとActivateの違い
早速結論ですが、「Select」は文字通りシートやセルを選択することで、「Activate」はシートやセルをアクティブ状態にすることです。
これだけ言われても理解しづらいと思いますので、サンプルコードと実際の画面を見てください!
Selectの使い方と特徴
まずは「Select」された場合の動きを確認していきましょう!
Range("A1:B3").Select
このように指定した範囲を選択することができました。
次に選択範囲の文字を空白にしてみましょう!
Selection.Value = ""
「Selectionプロパティ」で選択されたセルを対象にすることができます。
選択された範囲全ての文字を空白にすることができましたね!
「Select」ではセルやシートを選択することができ、「Selectionプロパティ」では選択されているセルやシートを対象とすることができます。
Activateの使い方と特徴
次は「Activate」について実際の動きを見ていきましょう!
Range("A1:B3").Activate
このように指定した範囲が選択された状態になりました。見た目上は「Select」の時と全く同じです。
次も同じように、先ほどのコードでアクティブ状態にしたセルを空白にしてみましょう!
ActiveCell.Value = ""
「ActiveCell」でアクティブ状態のセルを対象にすることができます。
このようにA1セルのみが空白になりました。
なぜこのようなことが起きるのでしょうか?
それは複数のセルをアクティブ状態にすることができないためです
セルやシートは同時に複数の編集をすることが可能なので少しややこしいですが、同時に複数のブックを編集することはできません。よって「Select」ではブックを対象にメソッドをかけることができません。
このように「Activate」とは1つのセルやシート、ブックを編集可能な状態にすることを言います。
まとめ
似ているのに違う動きをする「Select」と「Activate」について解説しました。
「Select」は選択されている状態で「Activate」は編集可能な状態です。
この違いを理解するには実際にコードに組み込んでみて、覚えていくことが必要です。
ややこしいですが使い方や特徴を押さえておくと、必ず使う場面が出てくると思いますのでぜひ参考にしてください!
この記事で少しでも皆さんのお役に立てれば幸いです!
忘れないうちにお気に入り登録もお願いします!
ありがとうございました!
コメントはお気軽に!
コメント一覧 (2件)
上の説明では、よく理解ができません。
Activateしなくとも、
RANGE(“A1”).Value=0 とでき編集可能で書き込み可能です。
したがって、編集可能という意味が不明です。
どういう編集なのでしょうか?教えていただけませんでしょうか?
コメントありがとうございます
説明不足で申し訳ありません。
Activateしなくても書き込み可能なのは、Activecellプロパティは省略しても実行可能だからです。
他にもグローバルに定義されているものは省略することできます。
また、複数のセルが同時にアクティブセルとして扱われることはなく、アクティブセルは必ず1つのセルになります。
これを編集可能なセルという言葉を使って表現させていただきました。