Excel VBA | 引数を省略可能にする Optional の使い方

VBA
スポンサーリンク

では「背景色も省略可能にする」バージョンを作ってみましょう。


完成コード例

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だけ指定。

練習問題

  1. 文字サイズ(Font.Size)も省略可能にしてみましょう。
    • 既定値は 11。
    • 呼び出し側で指定すれば文字サイズを変更できるようにする。
VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました