では「背景色も省略可能にする」バージョンを作ってみましょう。
完成コード例
Sub PutTextWithStyle(ByVal sheetName As String, ByVal addr As String, ByVal text As String, _
Optional ByVal bold As Boolean = False, _
Optional ByVal color As Long = vbBlack, _
Optional ByVal bgColor As Long = vbWhite)
' sheetName: シート名
' addr: セルの場所 (例 "A1")
' text: 書き込む文字列
' bold: 太字にするかどうか(省略可能、既定値はFalse)
' color: 文字色(省略可能、既定値は黒)
' bgColor: 背景色(省略可能、既定値は白)
With Worksheets(sheetName).Range(addr)
.Value = text
.Font.Bold = bold
.Font.Color = color
.Interior.Color = bgColor
End With
End Sub
VB呼び出し方の例
Sub TestPutTextWithStyle()
' 省略 → 太字なし・黒文字・白背景
Call PutTextWithStyle("Sheet1", "A1", "通常")
' 太字だけ指定
Call PutTextWithStyle("Sheet1", "A2", "見出し", True)
' 色だけ指定(赤文字)
Call PutTextWithStyle("Sheet1", "A3", "警告", , vbRed)
' 背景色だけ指定(黄色背景)
Call PutTextWithStyle("Sheet1", "A4", "注意", , , , vbYellow)
' 太字+色+背景色を全部指定
Call PutTextWithStyle("Sheet1", "A5", "重要", True, vbBlue, vbYellow)
End Sub
VBポイント解説
- Optional引数は最後にまとめるのが基本。
- 途中の引数を飛ばすときは カンマで位置を確保する。
- 例:
Call PutTextWithStyle("Sheet1", "A4", "注意", , , , vbYellow)
→ boldとcolorを省略して、bgColorだけ指定。
- 例:
練習問題
- 文字サイズ(Font.Size)も省略可能にしてみましょう。
- 既定値は 11。
- 呼び出し側で指定すれば文字サイズを変更できるようにする。

