【VBA】表のデータ部分のみクリアする方法

サラリーマンの方々は、エクセルで資料を作成する機会がなにかと多いと思います。特に文書を補完する表を入れ込んだ資料はなおさら。今回は、エクセルで使用頻度の高い表(テーブル)において、

 

項目を除いたデータ部分のみをクリアする方法

 

について書きたいと思います。

 

因みにですが、ここで紹介するVBAのコードは、

プロ顔負けといったすごいものではなく、こうすれば「一応できる」という初心者レベルでの解説となります。

あくまで個人レベルで作業することを想定していますのでご了承ください。

「スポンサーリンク」

 

手順1 表全体を参照する

まずは、表全体を捉えます。

 

使用するプロパティは、CurrentRegion

このプロパティは、空白の行・列で囲まれた範囲を取得します。

 

空白の行と列に囲まれた部分なので、

Range(”B2”).CurrentRegion.select

とすると、色のついたセル部分の範囲(B2:E7)を取得できます。

周りのセルに、文字等が入っていませんからね。表データ1

 

ただ、表を作成する時にタイトルを付けたり、コメントをすぐ下に書いたりする場合もあると思います。

例えばこんな感じ。

表データ2

 

この場合、取得する参照範囲はこうなります(色のついた範囲です)。

表データ3

本来不要な、21行、28行目も取得していしまいます。

こういう時は、上表で言うところの「21・22行目」、「27・28行目」の間に行を挿入し、それぞれ挿入した行を非表示にするという方法もあります。

表データ4

赤矢印部分を「非表示」にしてやれば、表部分のみの範囲を取得できます。

列の場合も考え方は同じなので、必要に応じて非表示対応する手が使えます。

 

 

手順2 データ部分のみを参照しなおす

さて、表全体をとらえる事は出来ました。

 

次にやりたいのは、データ部分のみを選択し、同部分のデータをクリアする事。

表には、通常「項目」があるので、その部分を参照範囲から除外することが必要になってきます。

 

ここで使用するプロパティは、Resizeプロパティ

 

これ、かなり使えます。

最初にCurrentRegionで取得した範囲を参照ベースとして、新たに参照範囲を取得しなおせるわけですので。

 

因みに引数は2つです。

 

【引数】

RowSize → 変更後の行数を指定する

ColumnSize → 変更後の列数を指定する

 

しかし、これだけでは使えません。

ここで、ポイントになってくるのは、Offsetプロパティ

これを組み合わせて使います。

 

このプロパティは、基準となるセルを行数・列数を指定して参照範囲をずらすことが出来る大変便利なプロパティです。

 

下表で説明します。

 

まずは、基準となるセルをB3にして、CurrentRegionで表全体(B3:E8)を参照。

次にOffsetプロパティで行・列を1つずつずらすイメージです。

表データ5

 

<サンプルコード>

Sub 表のデータ部クリア()

Range(“B3”).CurrentRegion.Offset(1, 1).Select

End Sub

 

しかし、これだと9行目とF列が不要になります。

そこで、下記のプロパティを使います。

 

Rows.Count

Columns.Count

 

これらは、表の行数や列数を数える為のプロパティです。

 

サンプルコードはこんな感じ。

 

<サンプルコード>

Sub 表のデータ部クリア()

Dim RowCnt As Long, Colcnt As Long

 With Range(“B3”).CurrentRegion

RowCnt = .Rows.Count

Colcnt = .Columns.Count

.Offset(1, 1).Resize(RowCnt – 1, Colcnt – 1).ClearContents

End With

End Sub

 

オフセットプロパティで1行下、1列右へずらした後に、Rows.Count及びColumns.Countで取得した行数(6行)、列数(4列)からそれぞれ1ずつ引いて範囲を狭める(C4:E8)形です。

こうすれば、項目行・列を外した純粋なデータ部分のみを参照することが出来ます。
あとは、ClearContentsメソッドでデータをクリアすればOKです。

 

補 足

ClearContentsにおいて

 

セルの内容を削除するには、ClearContentsメソッドを使います。

単に、Clearメソッドを使うと、セルに設定されているすべてのデータが消去されてしまいます。

 

つまり、罫線も消えてしまうわけですね。

ページ先頭へ戻る

「スポンサーリンク」

最新情報をチェックしよう!