ExcelマクロVBAサンプル集 | 連続セル範囲の選択 | Excelマクロの実用サンプル、エクセルVBA集と解説



最終更新日:2013-05-10

連続セル範囲の選択


エクセルのVBAでは、連続セル範囲の選択は頻繁に行われます。


以下では、いろいろな記述方法を紹介します。



このような表で、データ部(B3〜D7)を選択または消去する方法になります。


Sub test1()
  Range(Cells(3, 2), Cells(2, 2).End(xlToRight).End(xlDown)).Select
End Sub


B3〜B2、Ctrl+→、Ctrl+↓、の範囲になります。

上記のように、全てのセルが埋められている場合は良いですが、

途中に空白セルがあると、ダメですね。


Sub test2()
  Cells(2, 2).CurrentRegion.Offset(1, 0).Select
End Sub


非常に分かりやすい記述です。

Cells(2, 2).CurrentRegion

これで、B2〜D7のセル範囲になりますので、

Offsetで、1行下にずらしています。

でも1行多いですね。

まあ、処理によってはダメですね。


Sub test3()
  Cells(2, 2).CurrentRegion.Offset(1, 0).Resize(Cells(2, 2).CurrentRegion.Rows.Count - 1).Select
End Sub


test2のセル範囲を、正しいセル範囲にResizeしています。

これは、完璧ですね。


Sub test4()
  Range(Cells(3, 2), Cells(2, 2).CurrentRegion.Item(Cells(2, 2).CurrentRegion.Count)).Select
End Sub


CurrentRegionの最終セルを取得しています。

これも、完璧ですね。

ただ、Itemはあまり一般的ではないかも知れません。


Sub test5()
  Range(Cells(3, 2), Cells(Cells(Rows.Count, 2).End(xlUp).Row, Columns.Count).End(xlToLeft)).Select
End Sub


これは、かなり無理やりですね。

普通こんなことしませんよね。

この記事用にねちょっとやってみただけです。


Sub test6()
  Range(Rows(3), Rows(Cells(Rows.Count, 2).End(xlUp).Row)).Select
End Sub


クリアするだけとかなら、これでもよいですね。

行全体を選択しています。
場合によっては、このような指定も必要です。


Sub test7()
  Range(Cells(3, 2), ActiveSheet.UsedRange.Item(ActiveSheet.UsedRange.Count)).Select
End Sub


まあ、こんな指定もできますよね。

クリア専用なら、これでも良いですね。

とにかく、見出しを残して、他を全て消去するような場合ですね。

.Selectを.Clearにすれば良いです。


Sub test8()
  Range(Cells(3, 2), Cells.SpecialCells(xlLastCell)).Select
End Sub


これも、クリア専用になるでしょうか。


Intersectメソッドを使う方法も、簡単で有効な方法です。

Sub test9()
  Intersect(Cells(2, 2).CurrentRegion, Cells(2, 2).CurrentRegion.Offset(1, 0)).Select
End Sub


とても簡単ですし、完璧ですね。


上記以外にも、方法はいろいろあります。


また、どれが良いということではありません、ケースバイケースです。


正確に範囲選択する必要がある場合もありますが、


単にクリアするだけとか、新規シートにコピペするだけなら、


多少範囲が大きくても問題ありませんので。



.END(・・・)

.CurrentRegion

.UsedRange

.SpecialCells(xlLastCell)


これらの組み合わせで、ほとんどの連続セル範囲を指定することが出来ます。





同じテーマ「ExcelマクロVBAサンプル集」の記事

1行置きにする行挿入(Insert)
ユーザー定義関数でフリガナを取得する(GetPhonetic)
ユーザー定義関数でハイパーリンクのURLを取得(Hyperlink)
カラーのコード取得、256RGB⇔16進変換
時刻になったら音を鳴らして知らせる(OnTime)
指定文字、指定数式でジャンプ機能(Union)
「値の貼り付け」をショートカットに登録(OnKey)

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

データクレンジングと名寄せ|ExcelマクロVBA技術解説(10月20日)
SUMIFの間違いによるパフォーマンスの低下について|エクセル関数超技(6月17日)
条件式のいろいろな書き方:TrueとFalseの判定とは|ExcelマクロVBA技術解説(6月15日)
空白セルを正しく判定する方法2|ExcelマクロVBA技術解説(5月6日)
フルパスをディレクトリ、ファイル名、拡張子に分ける|ExcelマクロVBA技術解説(4月15日)
テキストボックスの各種イベント|Excelユーザーフォーム入門(4月9日)
フォルダ(サブフォルダも全て)削除する、Optionでファイルのみ削除|ExcelマクロVBAサンプル集(4月4日)
最後の空白(や指定文字)以降の文字を取り出す|エクセル関数超技(3月26日)
先頭の数値、最後の数値を取り出す|エクセル関数超技(3月26日)
Excelファイルを開かずにシート名をチェック|ExcelマクロVBAサンプル集(3月23日)

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

1.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
2.RangeとCellsの使い方|ExcelマクロVBA入門
3.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
4.変数とデータ型(Dim)|ExcelマクロVBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
6.定数と型宣言文字(Const)|ExcelマクロVBA入門
7.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
8.マクロって何?VBAって何?|ExcelマクロVBA入門
9.CSVの読み込み方法|ExcelマクロVBAサンプル集
10.ひらがな⇔カタカナの変換|エクセル基本操作



  • >
  • >
  • >
  • 連続セル範囲の選択

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


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

    ↑ PAGE TOP