セルを指定してFontやColorなどを変更できます。
フォント: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
まず最初に対象のセルを決めます。Cells(1,1)はA1セルのことです。
続いて、NameやSizeなど変更したい書式を指定して、何に変更するか決めましょう。
フォント名:Name
Sub test()
Cells(1, 1).Font.Name = "Times New Roman"
End Sub
Nameでフォント名(フォントの種類)を変えられます。
フォント名を文字列で指定しましょう。
こんな感じで、上にあるバーからフォント名をコピペすると楽です。
フォントサイズ:Size
Sub test()
Cells(1, 1).Font.Size = 20
End Sub
サイズ調整は、Sizeを指定して数値を打ち込むだけです。
文字色:Color
色はColorで指定するのですが、いくつか方法があります。
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のメリットは指定している色が直感的にわかりやすい点です。
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のシステム内で、番号と色が登録されています。
太字(Bold)と斜字(Italic)
太字と斜字の設定はTrueか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
上下寄せ: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
複数範囲の書式設定
複数セルを指定する方法
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で書式を変更する方法を解説しました。
データ集計をしたいなら、オートフィルターの自動化も便利ですよ。
コメント