【VBA】Excelマクロで文字の色やフォントを変える方法|書式変更

VBA
スポンサーリンク

VBAなら、ファイルを開いたときや入力したときに、自動でフォントを整えてくれます。

ちょこっと設定するだけなのでめちゃくちゃ簡単です。

・報告書のフォーマットを整えるのがめんどくさい

・共有ファイルにみんな好き勝手入力して、体裁が悪い

・ファイルを閉じるときに勝手に統一してほしい

こんな悩みを解決する内容です。

たったの1行で解決するので、ぜひやってみてください!!

フォント:Font

フォントを設定したい場合は、セルや列を指定してから、Fontを変更します。

Sub test()

Cells(1, 1).Font.Name = "Meiro"
Cells(1, 1).Font.Size = 20
Cells(1, 1).Font.Color = vbRed
Cells(1, 1).Font.Bold = True
Cells(1, 1).Font.Italic = True

End Sub
名前:Font.Name
サイズ:Font.Size
色:Font.Color
太字:Font.Bold = True or False
斜字:Font.Italic = True or False

まず最初に対象のセルを決めます。Cells(1,1)はA1セルのことです。

続いて、NameやSizeなど変更したい書式を指定して、何に変更するか決めましょう。

フォント名を変えるコード

これだけです。

①変更したいセルや列を決める
②NameやSizeなど、変更したい内容を決める
③変更後の種類や数値を=で決める

そもそもどうやってセルを指定するんだよ。。。

という方は、Excelマクロでセル,シート,ファイルを指定する方法をご覧ください!!

フォント名:Name

Sub test()

Cells(1, 1).Font.Name = "Times New Roman"

End Sub

Nameでフォント名(フォントの種類)を変えられます。

フォント名を文字列で指定しましょう。

1文字ずつ確認しながら打ち込むのはめんどくさいので、上にあるバーからコピペするといいですよ。

フォント名をコピペする方法

フォントサイズ:Size

Sub test()

Cells(1, 1).Font.Size = 20

End Sub

サイズ調整は、Sizeを指定して数値を打ち込むだけです。

文字色:Color

色はColorで指定するのですが、いくつか方法があります。

VBColor:vbRed, vbGreen, vbBlueなど
RGB:RGB(255, 0, 0)など
ColorIndex:0,1,2など(決められた数値)

vbColor

Sub test()

Cells(1, 1) = "vbRed"
Cells(2, 1) = "vbGreen"
Cells(3, 1) = "vbBlue"
Cells(1, 1).Font.Color = vbRed
Cells(2, 1).Font.Color = vbGreen
Cells(3, 1).Font.Color = vbBlue

End Sub

このプログラムを実行すると、それぞれがどんな色になるかが実際にわかります。

vbColorのメリットは指定している色が直感的にわかりやすい点です。

黒:vbBlack, 赤:vbRed, 青:vbBlue, 緑:vbGreen, 黄:vbYellow, 白:vbWhite

RGB

Sub test()

Cells(1, 1) = "赤"
Cells(2, 1) = "緑"
Cells(3, 1) = "青"
Cells(4, 1) = "黒"
Cells(5, 1) = "紫"
Cells(1, 1).Font.Color = RGB(255, 0, 0)
Cells(2, 1).Font.Color = RGB(0, 255, 0)
Cells(3, 1).Font.Color = RGB(0, 0, 255)
Cells(4, 1).Font.Color = RGB(0, 0, 0)
Cells(5, 1).Font.Color = RGB(255, 0, 255)

End Sub

RGBとはRedGreenBlueの略です。

色の濃さは1~255で設定されます。例えばRGB(255, 0, 0)は真っ赤です。

そして黒=RGB(0, 0, 0)、白=RGB(255, 255, 255)です。

RGBは細かい調節が可能なので、紫のような色も再現できます。

ColorIndex

Sub test()

Cells(1, 1) = "赤"
Cells(2, 1) = "緑"
Cells(3, 1) = "青"
Cells(4, 1) = "黒"

Cells(1, 1).Font.ColorIndex = 3
Cells(2, 1).Font.ColorIndex = 4
Cells(3, 1).Font.ColorIndex = 5
Cells(4, 1).Font.ColorIndex = 1

End Sub

ColorIndexは番号で色を指定する方法です。

VBAのシステム内で、番号と色が登録されています。

1:黒、2:白、3:赤、4:緑、5:青、6:黄色

いちいち数値を覚える必要があるので、

ぶっちゃけvbColorの方が楽です。

太字(Bold)と斜字(Italic)

太字と斜字の設定はTrueかFalseで決めます。

太字:Font.Bold = True or False
斜字:Font.Italic = True or False

セル背景色:Interior.Color

Sub test()

Cells(1, 1) = "赤"
Cells(1, 1).Interior.Color = vbRed

End Sub

セルの背景色はInterior.Colorで設定します。

セルの背景色を変えるコード

色の指定方法は文字色と同じです。

文字寄せ方向:Alignment

左右寄せ:HorizontalAlignment

Sub test()

Cells(1, 1) = "右"
Cells(1, 1).HorizontalAlignment = xlRight
Cells(2, 1) = "中央"
Cells(2, 1).HorizontalAlignment = xlCenter
Cells(3, 1) = "左"
Cells(3, 1).HorizontalAlignment = xlLeft

End Sub
右:xlRight, 左:xlLeft, 中央:xlCenter

上下寄せ:VerticalAlignment

Sub test()

Cells(1, 1) = "上"
Cells(1, 1).VerticalAlignment = xlTop
Cells(2, 1) = "中央"
Cells(2, 1).VerticalAlignment = xlCenter
Cells(3, 1) = "下"
Cells(3, 1).VerticalAlignment = xlBottom

End Sub
上:xlTop, 下:xlBottom, 中央:xlCenter

複数範囲の書式設定

範囲指定の方法については、この記事が詳しいです。

複数セルを指定する方法

Sub test()

Range("A1:C3").Interior.Color = vbRed
Range("A1:A5").Font.Size = 20

End Sub

Range(“左上:右下”)で複数のセルを指定できます。

“A1:C3″はA1~C3の計9個のセルが対象です。

行(列)を指定する方法

Sub test()

Rows(1).Interior.Color = vbRed
Columns(1).Font.Size = 20

End Sub

行はRows(行番号)、列はColumns(列番号)です。

シートの全セルを指定する方法

Sub test()

Cells.Font.Size = 12

End Sub

シート全体を指定したいなら、Cellsと書きます。

これを使えばシート全体で書式を統一することができますね。

全シートの全セルを指定する方法

Sub test()

For Each ws In ThisWorkbook.Worksheets
    ws.Cells.Font.Size = 12
    ws.Cells.Font.Name = "Meiryo"
Next ws

End Sub

For Eachで複数のオブジェクトに順番にアクセスできます。

今回は、プログラム実行ファイルの各シート1枚ずつを処理しましょう。

各シートの全セルで、フォントサイズとフォント名を変えることができます。

イベントプロシージャによる書式設定の自動化

イベントプロシージャを使えば書式設定を自動化できます。

プログラムを書く”VisualBasic”の画面左端に”ThisWorkbook”があるので、ダブルクリックしましょう。

ファイルを開いたら実行するプログラムを書く画面

ダブルクリックするとウィンドウが現れるので、左上を”Workbook”右上を”Open”に変えてください。

するとWorkbook_Open()と表示されるはずです。

すると、ファイルを開くときに、ここに書いたプログラムが実行されるようになります。

Private Sub Workbook_Open()

For Each ws In ThisWorkbook.Worksheets
    ws.Cells.Font.Size = 12
    ws.Cells.Font.Name = "Meiryo"
Next ws

End Sub

全シートの全セルのフォントを統一するプログラムにしました。

保存してから閉じて開いてみてください。

書式が統一されていたら成功です!!

あとはプログラム内容を自分の好きに変えてみてくださいね。

まとめ

今回はVBAで書式を変更する方法を解説しました。

データを集計した資料や報告書作成の際に便利ですね!!

データ集計をしたいなら、オートフィルターの自動化も便利ですよ。

VBA
スポンサーリンク
HTOMblog

コメント

タイトルとURLをコピーしました