VBA入門
第9回.Rangeでのセルの指定方法

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

第9回.Rangeでのセルの指定方法


前回までに出てきたRangeの使い方は、
Range("A1")
このように書くことで1つのセルを指定する場合でした。


複数のセル範囲を指定する場合、
矩形のセル範囲、行全体、列全体、特殊なセル範囲
これらの指定方法を見ていきましょう。

複数のセル(矩形のセル範囲)

複数のセル(矩形のセル範囲)を指定する場合のVBAの書き方です。
マウスでドラッグして複数のセルを選択しますよね、そのような範囲の場合です。

VBA マクロ Rangeの指定方法

Range("A1:C5")
このように、:(コロン)で区切って、始点と終点を指定します。

次のように指定しても同じになります。
Range("A1","C5")
このように、,(カンマ)で区切って、始点と終点を指定します。
これで、A1セルからC5セルの四角いセル範囲(15個のセル)が指定できます。
Range(始点セル, 終点セル)
このように指定します。
ただし、このカンマでの書き方はVBAではあまり使いません。

列全体

列全体を指定する場合のVBAの書き方です。
列見出しをクリックして選択する範囲の場合です。

VBA マクロ Rangeの指定方法

Range("A:A")
これで、A列全体になります。

Range("A:C") または Range("A:A","C:C")
これらなら、A列からC列までの3列の範囲指定になります。

行全体

行全体を指定する場合のVBAの書き方です。
行見出しをクリックして選択する範囲の場合です。

VBA マクロ Rangeの指定方法

Range("1:1")
これで、1行目全体の指定になります。

Range("1:5") または Range("1:1","5:5")
これなら、1行から5行までの5行の範囲指定になります。

名前定義のセル範囲

名前定義されているセルの場合のVBAの書き方です。
セル範囲や数式に名前を付けることができます。この名前定義は、エクセルで複雑な設定をしたい場合には必須の技術になります。名前ボックス このA1等のセル番地が表示されている部分を「名前ボックス」と呼びます。
名前ボックスから名前を選択した場合のセル範囲です。

Range("名前定義の名前")
これで指定可能です。

特殊な指定方法

飛び飛びのセル
飛び飛びのセルを指定する場合のVBAの書き方です。
Ctrlを押しながらマウスで選択していくような複数セルの指定です。

VBA マクロ Rangeの指定方法

Range("A1,C5")
この指定では、A1セルとC5セル(2個のセル)のみ対象となります。
"(ダブルクォーテーション)の中で、,(カンマ)で区切って指定します。
この場合のセルの個数はいくつでも指定できます。ただし上限はあります。

交差セル
かなり特殊な指定方法として、
空白区切りの指定で、交差しているセルを指定できます。

VBA マクロ Rangeの指定方法

Range("A:C 1:5")
これは、A:Cと1:5の交差している範囲、
つまり、A1~C5の矩形セル範囲になります。

この指定は、
Range("A1","C5")と同じになりますので、ほとんど使うことは無いでしょう。

マクロVBAで良く使う書き方

Rangeの書き方について、
後半にいろいろな書き方も紹介しましたが、マクロで通常使用するのは、

Range("A1")
Range("A1:C5")
Range("A:A")
Range("1:1")
Range("名前定義の名前")


上記のいずれかがほとんどになります。

そして、最後になりますが、
Rangeの中に書く、セル番地は必ず大文字で書いてください。
シートの関数は、小文字で書いたとしても大文字に変換されますが、マクロでは変換されません。
やはり、シートの関数と同様の大文字表記が見やすいはずです。

セルの指定方法はまだまだ色々とあります。
次回以降、さらに詳しく見ていきます。
第10回.Range以外の指定方法(Cells,Rows,Columns)
Rangeの指定で、あらゆるセルおよびセル範囲は指定できるのですが、マクロで使う場合は、ちょっと使いづらい場合があります。"A1"や"B5"と言うような文字で指定するのでは何かと不便です、もっと、プログラムっぽい(笑)指定方法があります。
第11回.RangeとCellsの使い方
VBAではセルを指定する方法としてRangeとCellsがあります、RangeもCellsも、どちらもRangeオブジェクトでセルを指定するものです。どちらを使ったらよいのでしょうか、どう使い分けたらよいのでしょうか、実際のVBA記述では、RangeとCellsを使い分ける必要があります、RangeとCellsの使い方・使い分け方について解説をします。



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

第6回.とにかく書いてみよう(Sub,End Sub)
第7回.マクロを実行するには(F5)
第8回.セルに文字を入れるとは(Range,Value)
第9回.Rangeでのセルの指定方法
第10回.Range以外の指定方法(Cells,Rows,Columns)
第11回.RangeとCellsの使い方
第38回.セルに計算式を設定(Formula)
第12回.変数宣言のDimとデータ型
第13回.定数宣言のConstと型宣言文字
第14回.文字の結合(&アンパサンド)と継続行(_アンダーバー)
第15回.四則演算と注釈(コメント)


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

pipコマンド(外部ライブラリのインストール)|Python入門(10月1日)
CSV読み書き(csvモジュール)|Python入門(9月29日)
「Excel 4.0 マクロ」の使い方|VBA技術解説(9月28日)
CSV読み込みとopen()関数とwith文|Python入門(9月28日)
フォルダとファイルの一覧を取得(os,glob,pathlib)|Python入門(9月26日)
import文(パッケージ・モジュールのインポート)|Python入門(9月24日)
例外処理(try文)とexception一覧|Python入門(9月23日)
リスト内包表記|Python入門(9月22日)
Pythonの引数は参照渡しだが・・・|Python入門(9月21日)
lambda(ラムダ式、無名関数)と三項演算子|Python入門(9月20日)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.マクロって何?VBAって何?|VBA入門
6.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.とにかく書いてみよう(Sub,End Sub)|VBA入門
10.マクロはどこに書くの(VBEの起動)|VBA入門




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


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



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