VBAで表全体を選択する

空白行、列に囲まれた部分を選択する

空白行と空白列に囲まれた部分のことをアクティブセル領域と言います。

この部分は一般的には表形式になっていることが多いと思います。

キーボードショートカットの「Ctrl + *」で選択が可能です。

CurrentRegionプロパティ

アクティブセル領域を選択する場合は、CurrentRegionプロパティを利用します。

CurrentRegionプロパティは親オブジェクトにRangeオブジェクトを指定する必要があります。

CurrentRegionプロパティを使うことでRangeオブジェクトとして指定したセルが含まれている表全体を選択することになります。

ソースコード

Rangeオブジェクトの例をいくつか挙げていますが、どの書き方でも構いません。

指定するセルは表の中にあるセルであればどこでもいいのですが、「指定セルは表の一番左上にする」などのルールとして決めておいた方が表のフォーマットが変わった場合などでも、ある程度対応しやすくなると思います。


表の先頭行位置や行数、先頭列位置や列数

CurrentRegionプロパティによる表の選択で、その表の先頭行や行数などを取得する場合には以下のようなコードを書きます。

内容はコメントの通りですが、最終行や最終列は事前に先頭位置と行数や列数から算出しなければなりません。

注意点

保護されているシートでは使えない

CurrentRegionプロパティは保護中のワークシートでは利用できません。

もし利用しようとした場合は実行時エラー1004が発生します。

空白行、空白列で囲わないといけない

表を作成する場合に、枠線で囲っていても表の隣に値を入力することは多々あります。

そのような「表+隣入力あり」の場合は、隣の入力されているセルも選択されてしまいます。

CurrentRegionプロパティは空白行と空白列で囲まれた範囲を選択しますので、表の周りのセルには何も入力してはいけない、というルールを徹底しなければなりません。

関連記事

サブコンテンツ

このページの先頭へ