表エリアの取得方法
表の部分だけ一括で書式(太字や色、罫線など)を設定したい場合は、セルのCurrentRegionプロパティで対象エリアを取得します。
たとえば、下のような表データがあった時
次のコードどの書き方でも、表内のデータがあるセルのCurrentRegionプロパティで、表全体(B2~D8の表全体)を取得することができます。
- Range(“B2”).CurrentRegion
- Range(“D2”).CurrentRegion
- Range(“C6”).CurrentRegion
この取得した対象エリアに書式を設定することで、一括でまとめて書式を設定できます。
ただし、D8セルのように表内で孤立したセルを基準として、CurrentRegionプロパティで取得しようとするとうまくいきません。(この場合はD8のみ取得してしまう)
CurrentRegionは、指定したセルの空白で囲まれたエリアを取得するからです。
また、1つもデータのない行や1つもデータのない列があると、そこで取得エリアは分断されます。
ちょっと難しくなりましたが、CurrentRegionを使う時は、「離れ小島のセルは指定しない」「表内の必須項目や見出しを指定する」と覚えておけば大丈夫です。
表エリアへの書式設定
背景色や文字色、太字、フォント、線、縦横位置など代表的な書式をピックアップしています。
コード
下のコードを実行すると、上の例であげた表の場合B2~D8の表全体に書式が設定されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
'------------------------------------------------ '背景色 '------------------------------------------------ '定数で文字色を赤にする Range("B2").CurrentRegion.Interior.Color = rgbBlue 'RGB関数で文字色を赤にする Range("B2").CurrentRegion.Interior.Color = RGB(0, 0, 255) '------------------------------------------------ '文字色 '------------------------------------------------ '定数で文字色を赤にする Range("B2").CurrentRegion.Font.Color = rgbRed 'RGB関数で文字色を赤にする Range("B2").CurrentRegion.Font.Color = RGB(255, 0, 0) '------------------------------------------------ '太字、斜体 '------------------------------------------------ '太字にする Range("B2").CurrentRegion.Font.Bold = True '斜体にする Range("B2").CurrentRegion.Font.Italic = True '------------------------------------------------ 'フォント名、フォントサイズ '------------------------------------------------ 'フォントをメイリオに変更 Range("B2").CurrentRegion.Font.Name = "メイリオ" 'フォントサイズを20に変更 Range("B2").CurrentRegion.Font.Size = 20 '------------------------------------------------ '文字に下線、取り消し線 '------------------------------------------------ '下線 Range("B2").CurrentRegion.Font.Underline = xlUnderlineStyleSingle '取り消し線 Range("B2").CurrentRegion.Font.Strikethrough = True '------------------------------------------------ '文字の縦、横方向 '------------------------------------------------ '下詰め Range("B2").CurrentRegion.VerticalAlignment = xlBottom '右揃え Range("B2").CurrentRegion.HorizontalAlignment = xlRight '------------------------------------------------ 'その他 '------------------------------------------------ '「折り返して全体を表示する」 Range("B2").CurrentRegion.WrapText = True '「縮小して全体を表示する」 Range("B2").CurrentRegion.WrapText = False Range("B2").CurrentRegion.ShrinkToFit = True '------------------------------------------------ '罫線 '------------------------------------------------ '表に縦横全ての罫線を引く Range("B2").CurrentRegion.Borders.LineStyle = xlContinuous '表の外枠を引く(太罫線) Range("B2").CurrentRegion.BorderAround Weight:=xlMedium |
解説
「縮小して全体を表示する」する場合は、「折り返して全体を表示する」が効いていると制御で負けるので、直前でWrapText = Falseとします。
各書式の詳細は、以下のリンクを参考にしてください。
- 【VBA】背景色を変更する
- 【VBA】文字色を変更する
- 【VBA】文字のフォントを変更する
- 【VBA】文字のフォントサイズを変更する
- 【VBA】文字に下線を設定する
- 【VBA】文字に取り消し線を設定する
- 【VBA】文字を「折り返して全体を表示する」に変更する
- 【VBA】文字を「縮小して全体を表示する」に変更する
- 【VBA】文字の横方向の配置を変更する
- 【VBA】文字の縦方向の配置を変更する