【VBA】表のセルだけ一括で書式を設定する

表エリアの取得方法

表の部分だけ一括で書式(太字や色、罫線など)を設定したい場合は、セルのCurrentRegionプロパティで対象エリアを取得します。

たとえば、下のような表データがあった時

次のコードどの書き方でも、表内のデータがあるセルのCurrentRegionプロパティで、表全体(B2~D8の表全体)を取得することができます。

  • Range(“B2”).CurrentRegion
  • Range(“D2”).CurrentRegion
  • Range(“C6”).CurrentRegion

この取得した対象エリアに書式を設定することで、一括でまとめて書式を設定できます。

 

ただし、D8セルのように表内で孤立したセルを基準として、CurrentRegionプロパティで取得しようとするとうまくいきません。(この場合はD8のみ取得してしまう)

 

CurrentRegionは、指定したセルの空白で囲まれたエリアを取得するからです。

 

また、1つもデータのない行や1つもデータのない列があると、そこで取得エリアは分断されます。

 

ちょっと難しくなりましたが、CurrentRegionを使う時は、「離れ小島のセルは指定しない」「表内の必須項目や見出しを指定する」と覚えておけば大丈夫です。

 

表エリアへの書式設定

背景色や文字色、太字、フォント、線、縦横位置など代表的な書式をピックアップしています。

コード

下のコードを実行すると、上の例であげた表の場合B2~D8の表全体に書式が設定されます。

解説

「縮小して全体を表示する」する場合は、「折り返して全体を表示する」が効いていると制御で負けるので、直前でWrapText = Falseとします。

各書式の詳細は、以下のリンクを参考にしてください。

関連記事

VBAテクニック辞典
成果を出す5つのポイント
VBAテクニック辞典
えくとしょ | 初心者のためのエクセルとVBAの図書館
タイトルとURLをコピーしました