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

VBA
スポンサーリンク

では「文字サイズも省略可能にする」バージョンを作ってみましょう。


完成コード例

Sub PutTextWithStyle2(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, _
    Optional ByVal fontSize As Long = 11)

    ' sheetName: シート名
    ' addr: セルの場所 (例 "A1")
    ' text: 書き込む文字列
    ' bold: 太字にするかどうか(省略可能、既定値はFalse)
    ' color: 文字色(省略可能、既定値は黒)
    ' bgColor: 背景色(省略可能、既定値は白)
    ' fontSize: 文字サイズ(省略可能、既定値は11)

    With Worksheets(sheetName).Range(addr)
        .Value = text
        .Font.Bold = bold
        .Font.Color = color
        .Interior.Color = bgColor
        .Font.Size = fontSize
    End With
End Sub
VB

呼び出し方の例

Sub TestPutTextWithStyle2()
    ' 省略 → 太字なし・黒文字・白背景・サイズ11
    Call PutTextWithStyle2("Sheet1", "A1", "通常")

    ' 太字だけ指定
    Call PutTextWithStyle2("Sheet1", "A2", "見出し", True)

    ' 色だけ指定(赤文字)
    Call PutTextWithStyle2("Sheet1", "A3", "警告", , vbRed)

    ' 背景色だけ指定(黄色背景)
    Call PutTextWithStyle2("Sheet1", "A4", "注意", , , vbYellow)

    ' 文字サイズだけ指定(サイズ20)
    Call PutTextWithStyle2("Sheet1", "A5", "大きな文字", , , , , 20)

    ' 太字+色+背景色+文字サイズを全部指定
    Call PutTextWithStyle2("Sheet1", "A6", "重要", True, vbBlue, vbYellow, 16)
End Sub
VB

ポイント解説

  • Optional引数は最後にまとめるのが基本。
  • 途中の引数を飛ばすときは カンマで位置を確保する。
    • 例:Call PutTextWithStyle2("Sheet1", "A5", "大きな文字", , , , , 20)
      → bold, color, bgColorを省略して、fontSizeだけ指定。

これで「太字」「文字色」「背景色」「文字サイズ」をすべて省略可能にできました。
👉 次のステップとしては「フォント名」や「斜体」なども省略可能にして、さらに柔軟なスタイル設定関数に発展させることもできます。

VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました