VBA入門
第28回.セル・行・列の選択(Select,ActivateとCurrentRegion)

ExcelマクロVBAの基本と応用、エクセルVBAの初級・初心者向け解説
最終更新日:2020-10-22

第28回.セル・行・列の選択(Select,ActivateとCurrentRegion)


マクロVBAで、セル、行、列を選択するときの記述について説明します。
まずは、セルの選択について説明する前に、
選択セルアクティブセルについて、 説明する必要があります。


選択セルとアクティブセル

マクロ VBA セルの選択

この状態で、
選択セルは、B2~C6の10個のセルです。
アクティブセルは、B2セルになります。
選択セルは、1つの領域(連続した範囲)である必要はなく、
Ctrlを押しながら選択した場合は、複数の領域が選択できます。

しかし、アクティブセルは、常に1つです
アクティブブックのアクティブシートにのみ存在します。
アクティブではないシートの、最終アクティブセルは、
通常はアクティブセルとは呼びません。

マクロでアクティブセルを参照する時は、
ActiveCell
と書きます。
このセルに"文字"を入れる場合は、
ActiveCell = "文字"
このように書きます。

しかし、マクロにおいて、ActiveCellを使う事はあまり無いでしょう。
使う事はあまり無いでしょうと言うより、あまり使わない方が良いでしょうということです。

セルの選択

Range("セル番地").Select
または、
Cells(行, 列).Select
※SelectはRangeオブジェクトのメソッドです。メソッドについては下で説明しています。

複数セルの指定方法は、
第9回.Rangeでのセルの指定方法
前回までに出てきたRangeの使い方は、Range("A1") このように書くことで1つのセルを指定する場合でした。複数のセル範囲を指定する場合、矩形のセル範囲、行全体、列全体、特殊なセル範囲 これらの指定方法を見ていきましょう。複数のセル(矩形のセル範囲) 複数のセル(矩形のセル範囲)を指定する場合のVBAの書き…
第10回.Range以外の指定方法
Rangeの指定で、あらゆるセルおよびセル範囲は指定できるのですが、マクロで使う場合は、ちょっと使いづらい場合があります。"A1"や"B5"と言うような文字で指定するのでは何かと不便です、もっと、プログラムっぽい(笑)指定方法があります。
第11回.RangeとCellsの使い方
VBAではセルを指定する方法としてRangeとCellsがあります、RangeもCellsも、どちらもRangeオブジェクトでセルを指定するものです。どちらを使ったらよいのでしょうか、どう使い分けたらよいのでしょうか、実際のVBA記述では、RangeとCellsを使い分ける必要があります、RangeとCellsの使…

これらを参考にして下さい。

セルをアクティブにする

Range("セル番地").Activate
または、
Cells(行, 列).Activate
※ActivateはRangeオブジェクトのメソッドです。メソッドについては最後に説明します。

SelectとActivateは、複数セルを選択している場合のみ違ってきます。
例えば、
Range("A1:B10,E11:F20").Select
これを実行した状態で、
Range("F18").Activate
とすれば、セルの選択状態は変わらず、アクティブセルのみF18に移動します。
しかし、
Range("F18").Select
とした場合は、
他のセルの選択状態は解除され、F18セルのみ選択されアクティブになります。

行の選択、列の選択

行の選択
Rows(行位置).Select
列の選択
Columns(列位置).Select

RowsとColumnsにおいてもActivateは出来ますが、使用頻度は極めて低いでしょう。
Rows(行位置).Activateなら、当該行のA列がアクティブになります。
Columns(列位置).Activateなら、当該列の1行がアクティブになります。

セル領域の選択

連続したセル領域の選択には、CurrentRegionプロパティを使います。
CurrentRegionプロパティ
選択範囲を自動的に拡大して、 現在の領域全体が含まれるようにします。
現在の選択範囲は、空白の行と空白の列の任意の組み合わせで囲まれた範囲です。

VBA マクロ CurrentRegion

Range("B2").CurrentRegion.Select

"B2"はB2:D6の範囲であればどのセルを指定しても、選択されるセル範囲は同じになります。
B4,C3,D5,C6のように部分的な空欄はセル領域として認識されます。
7行目は空行となっているので、8行目以降は範囲に含まれません。

B8:D9のいずれかのセルを指定した場合は、B8:D9の範囲が選択されます。

メソッドとはプロパティとは

ここまでに出てきた、
Select
Activate
これらは、Rangeオブジェクトメソッドです。
メソッドとは、方法・方式で、
オブジェクトに対する動作・操作を指定します
上記以外でも、次回出てくる、セルの削除・挿入もメソッドになります。

オブジェクトは対象物、プロパティはその属性、メソッドは動作を与えます。
エクセルの言葉を理解する(オブジェクト、プロパティ、メソッド
VBAを書いて実行すると、何やら難しい日本語らしきメッセージが表示されることがあります。エクセルが何かを伝えようとしている訳ですが、何を言っているのかを理解してあげなければエクセルがかわいそうです。かわいそうと言うのはともかくとして、エクセルが表示するエラーメッセージの言葉の意味くらいは知っておきたいところです。



同じテーマ「マクロVBA入門」の記事

第25回.名前付き引数について
第26回.総合練習問題2
第27回.ブック・シートの選択(Select,Activate)
第28回.セル・行・列の選択(Select,ActivateとCurrentRegion)
第29回.セル・行・列の削除・挿入(Delete,Insert)
第30回.総合練習問題3
第31回.セルの書式(表示形式,NumberFormatLocal)
第32回.セルの書式(配置,Alignment)
第33回.セルの書式(フォント,Font)
第34回.セルの書式(塗りつぶし,Interior)
第35回.セルの書式(罫線,Border)


新着記事NEW ・・・新着記事一覧を見る

キーボード操作だけで非表示列を表示|エクセル雑感(2021-05-11)
変数を考えることはロジックを考える事|エクセル雑感(2021-04-11)
RangeオブジェクトのFor EachとAreasについて|VBA技術解説(2021-04-08)
PropertyのSetはLetでも良い|VBA技術解説(2021-03-31)
エクセル麻雀ミニゲーム|VBAサンプル集(2021-03-09)
VBA100本ノック 100本目:WEBから100本ノックのリストを取得|VBA練習問題(2021-03-03)
VBA100本ノック 魔球編:2桁の最小公倍数|VBA練習問題(2021-02-02)
Select Caseでの短絡評価(ショートサーキット)の使い方|VBA技術解説(2021-01-03)
VBA100本ノック 迷宮編:巡回セル問題|VBA練習問題(2020-12-31)
VBA100本ノック 魔球編:閉領域の塗り潰し|VBA練習問題(2020-12-16)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.Excelショートカットキー一覧|Excelリファレンス
3.RangeとCellsの使い方|VBA入門
4.マクロって何?VBAって何?|VBA入門
5.変数宣言のDimとデータ型|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.ひらがな⇔カタカナの変換|エクセル基本操作
8.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
9.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
10.セルに文字を入れるとは(Range,Value)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ