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

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

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


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


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

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

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

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

つまり、

Range(始点セル, 終点セル)

このように指定します。

列全体

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

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

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

行全体

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

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

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

名前定義のセル範囲

名前定義されているセルの場合のVBAの書き方です。
名前ボックスから名前を選択されるセル範囲の場合です。

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

特殊な指定方法

飛び飛びのセル
飛び飛びのセルを指定する場合のVBAの書き方です。

Ctrlを押しながらマウスで選択していくような複数セルの指定です。

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

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

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の中に書く、セル番地は必ず大文字で書いてください。
シートの関数は、小文字で書いたとしても、大文字に変換されますが、マクロでは変換されません。
やはり、シートの関数と同様の大文字表記が見やすいはずです。



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

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


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

VBAクラスのAttributeについて(既定メンバーとFor…Each)|VBA技術解説(10月19日)
VBAの用語について:ステートメントとは|VBA技術解説(10月16日)
VBAのマルチステートメント(複数のステートメントを同じ行に)|VBA技術解説(10月14日)
VBAコードの全プロシージャー・プロパィ一覧を取得|VBAサンプル集(10月12日)
VBAでエラー行位置(行番号)を取得できるErl関数|VBA技術解説(10月11日)
手動計算時の注意点と再計算方法|ExcelマクロVBA技術解説(10月9日)
引数の数を可変にできるパラメーター配列(ParamArray)|VBA入門(10月7日)
VBEの使い方:デバッグ|ExcelマクロVBA入門(10月6日)
VBAにおける配列やコレクションの起点について|VBA技術解説(10月5日)
VBEの使い方:オブジェクト ブラウザー|VBA入門(10月5日)


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

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.ひらがな⇔カタカナの変換|エクセル基本操作
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
10.セルに文字を入れるとは(Range,Value)|VBA入門



  • >
  • >
  • >
  • Rangeでのセルの指定方法

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


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




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