Home 第三章 VBの基本文法


3. 名前付き引数


引数(ひきすう)とは
プログラムを記述するなかで、条件として与えられる、定数や変数等のことを言います。

  1. Range("A1")の("A1")の部分が引数です。
    「セルを選んでください」 といわれても 「何処のセル?」 と聞いてしまいますね。
    「メッセージを表示する」 当然これだけだと 何が表示されるのか分かりませんね。

  2. プログラムの記述において、必要な引数が指定されていない場合、エラーになります。
    (VBEは親切なので、エラー原因を知らせてエラー行を黄色く反転します。)

  3. プログラム言語は、あらかじめ、設定できる引数が決められています。
    Range(セル番地を表す文字列)
    Cells(行番号・列番号) 又は Cells(行番号・列を表す文字列) という具合です。

  4. 引数は、一つだけのものから、複数設定できるものもがあります。
    引数が複数ある場合は、配置順番が決まっていることはMsgboxで説明しました。

  5. が、引数を名前付き引数で指定してやると配置順番を気にせず設定できます。
    Msgboxで説明すると
    MsgBox Prompt:="内容" , Title:="タイトル" や
    MsgBox Title:="タイトル" , Prompt:="内容" という具合に記述できます。
    余分なコンマが要らないわけです。

    One Point アドバイス
    プログラムを記述する場合 無意識に省略された記述をしている場合があるようです。
    省略派と明記派 に分かれますが、見直したとき、分かりやすいほうが良いですね。
    必要に応じて 省略・明記 をやればいいでしょう。

    サンプルファイル 3_003.xls

    記述例
    '----------------------------------------------------------------
    Sub A_01()
        MsgBox "配置順番を示す区切りコンマが必要になる", , "名前付き引数について"
    End Sub
    '----------------------------------------------------------------
    Sub A_02()
       MsgBox Prompt:="明示により順番は気にしなくて良い", Title:="名前付き引数について2"
    End Sub
    '----------------------------------------------------------------
    Sub A_03()
        MsgBox Title:="名前付き引数について3", Prompt:="区切りコンマは一つで良い"
    End Sub

    Sub PlusA2001()
        Range("E1").Value = MsgBox(Prompt:="ボタンを押してください", Title:="ボタン")
    End Sub
    '----------------------------------------------------------------
    Sub PlusA2002()
        Range("E1").Value = MsgBox(Prompt:="ボタンを押してください", Buttons:=vbOKCancel, Title:="ボタン")
    End Sub
    '----------------------------------------------------------------
    Sub PlusA2003()
        Range("E1").Value = MsgBox(Prompt:="ボタンを押してください", Buttons:=vbAbortRetryIgnore, Title:="ボタン")
    End Sub
    '----------------------------------------------------------------
    Sub PlusA2004()
        Range("E1").Value = MsgBox(Prompt:="ボタンを押してください", Buttons:=vbYesNoCancel, Title:="ボタン")
    End Sub
    '----------------------------------------------------------------
    Top