ExcelマクロVBA入門
第28回.セル・行・列の選択(Select,Activate)

Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説
最終更新日:2019-06-30

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


マクロ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行がアクティブになります。

メソッドとは

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

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



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

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


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

Byte配列と文字コード関数について|VBA技術解説(8月20日)
PowerQueryの強力な機能をVBAから利用する方法|VBA技術解説(8月4日)
練習問題31(セル結合を解除して値を埋める)|VBA練習問題(7月30日)
練習問題30(マトリックス→リスト形式)|VBA練習問題(7月25日)
Applicationを省略できるApplicationのメソッド・プロパティ一覧|VBA技術解説(7月22日)
コレクション(Collection)の並べ替え(Sort)に対応するクラス|VBA技術解説(7月20日)
CSVの読み込み方法(ジャグ配列)|VBAサンプル集(7月15日)
その他のExcel機能(グループ化、重複の削除、オートフィル等)|VBA入門(7月14日)
オートフィルタ退避回復クラスを複数シート対応させるVBAクラス|VBA技術解説(7月6日)
オートフィルタを退避回復するVBAクラス|VBA技術解説(7月6日)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数とデータ型(Dim)|ExcelマクロVBA入門
6.繰り返し処理(For Next)|ExcelマクロVBA入門
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.ひらがな⇔カタカナの変換|エクセル基本操作
10.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説



  • >
  • >
  • >
  • セル・行・列の選択(Select,Activate)

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


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




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