では「色を省略可能にする」バージョンを一緒に作ってみましょう。
課題:セルに文字列を書き込むけど、文字色を省略可能にする
完成コード例
Sub PutTextWithColor(ByVal sheetName As String, ByVal addr As String, ByVal text As String, Optional ByVal color As Long = vbBlack)
' sheetName: シート名
' addr: セルの場所 (例 "A1")
' text: 書き込む文字列
' color: 文字色(省略可能、既定値は黒)
With Worksheets(sheetName).Range(addr)
.Value = text
.Font.Color = color
End With
End Sub
VB呼び出し方の例
Sub TestPutTextWithColor()
' colorを省略 → 黒文字になる
Call PutTextWithColor("Sheet1", "A1", "通常の文字")
' colorに赤を渡す
Call PutTextWithColor("Sheet1", "A2", "警告", vbRed)
' colorに青を渡す
Call PutTextWithColor("Sheet1", "A3", "情報", vbBlue)
End Sub
VBポイント解説
Optional ByVal color As Long = vbBlack
→ 省略可能で、既定値は黒。- 呼び出し側で省略すると黒文字になる。
vbRedやvbBlueなどの定数を渡すと色が変わる。
練習問題
- 太字と色を両方省略可能にする
- 既定値は「太字なし」「黒文字」。
- 呼び出し側で必要なときだけ指定できるようにしてみましょう。
ヒント:
Optional ByVal bold As Boolean = False, Optional ByVal color As Long = vbBlack
VB
