VBA入門
名前付き引数について

ExcelマクロVBAの基本と応用、エクセルVBAの初級・初心者向け解説
公開日:2013年5月以前 最終更新日:2021-08-28

第25回.名前付き引数について


引数とは、関数やメソッド等を呼び出すときに渡す値のことです。
この引数を渡す時の記述方法として、名前付き引数があります。


マクロVBAでの記述では、:=が使われます。
この:=名前付き引数のみで使用される記述になります。
(名前付き引数以外では:=は使われません)


仮引数と実引数

仮引数とは、関数・メソッド定義時に指定される引数の事です。
実引数とは、その関数・メソッドを実際に使用するときに引き渡す引数の事です。

このマクロVBA入門シリーズでは特にこれらを区別しなくても分かる場合は、単に「引数」と表記しています。


メソッドとは

メソッドはmethodであり、方法・方式です。オブジェクトに対する動作・操作を指定します。
セルを選択する、セルを削除する等ですが、今後少しずつ説明していきます。

エクセルの言葉を理解する(オブジェクト、プロパティ、メソッド)
・VBAが表示するメッセージ ・オブジェクト、プロパティ、メソッド ・プロパティとメソッドの違い ・オブジェクトの階層(親子構造) ・プロパティの省略 ・エクセルの言葉であるVBAを日本語に翻訳する ・最終行取得のコードを訳してみる ・VBA用語を覚えることについて ・ExcelマクロVBA入門等の対応ページ


名前付き引数について

通常、複数の引数がある場合は、その順番通りに指定します。
先頭より、
第1引数, 第2引数, 第3引数, ・・・ 
と呼びます。

しかし引数の数が多いと、何番目なのかを意識することは面倒になりますし混乱します。

そこで、
引数に名前を付けて、その名前で指定できるようになっています
それが、
名前付き引数です。

名前付き引数を指定する場合は、
名前付き引数名:=値
このように、:=で値を指定します。


名前付き引数の例文

MsgBox関数での名前付き引数の使用例です。

MsgBox(prompt[, buttons] [, title] [, helpfile, context])

MsgBox "出来ました。", vbOKOnly, "タイトル"

としましたが、この引数は順番通りに指定する必要があります
名前付き引数を使って指定すると、

MsgBox prompt:="出来ました。", Buttons:=vbOKOnly, Title:="タイトル"

これは、

MsgBox Title:="タイトル", Buttons:=vbOKOnly, prompt:="出来ました。"

このように、名前付き引数を使えば、順番を変更しても問題ありません
また、名前付き引数を使わない場合は、途中の引数を省略する場合は、

MsgBox "出来ました。", , "タイトル"

このように、, , として、引数の位置は正しく指定する必要があります
しかし名前付き引数を使えば、

MsgBox prompt:="出来ました。", Title:="タイトル"

名前付き引数を使えば、引数の位置を意識することなく指定できます


名前付き引数の必要性

出来る限り、名前付き引数を使う事が望ましいのですが、
全ての関数・メソッドで名前付き引数を使うのは少々面倒な時もあります。

上記の例のMsgBox関数のような、
VBA関数は多くの人が、その引数の順番を知っているので特に名前付き引数を使う必要がない場合が多いです。

しかしメソッドにおいては、引数の数がとても多いものがあります。
そして、その引数の意味や順番を記憶している人は少ないでしょう。

名前付き引数を使う事で、より解り易いマクロVBAにすることが出来ます。
つまり名前付き引数は、マクロVBAを読みやすくするためにあるものだと考えてもらえれば良いです。




同じテーマ「マクロVBA入門」の記事

第22回.条件分岐(Select Case)
第23回.メッセージボックス(MsgBox関数)
第24回.インプットボックス(InputBox関数)
第25回.名前付き引数について
第26回.総合練習問題2
第27回.ブック・シートの選択(Select,Activate)
第28回.セル・行・列の選択(Select,ActivateとCurrentRegion)
第29回.セル・行・列の削除・挿入(Delete,Insert)
第30回.総合練習問題3
第31回.セルの書式(表示形式,NumberFormatLocal)
第32回.セルの書式(配置,Alignment)


新着記事NEW ・・・新着記事一覧を見る

AIは便利なはずなのに…「AI疲れ」が次の社会問題になる|生成AI活用研究(2026-02-16)
カンマ区切りデータの行展開|エクセル練習問題(2026-01-28)
開いている「Excel/Word/PowerPoint」ファイルのパスを調べる方法|エクセル雑感(2026-01-27)
IMPORTCSV関数(CSVファイルのインポート)|エクセル入門(2026-01-19)
IMPORTTEXT関数(テキストファイルのインポート)|エクセル入門(2026-01-19)
料金表(マトリックス)から金額で商品を特定する|エクセル練習問題(2026-01-14)
「緩衝材」としてのVBAとRPA|その終焉とAIの台頭|エクセル雑感(2026-01-13)
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
8.マクロとは?VBAとは?VBAでできること|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.メッセージボックス(MsgBox関数)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
本サイトは、OpenAI の ChatGPT や Google の Gemini を含む生成 AI モデルの学習および性能向上の目的で、本サイトのコンテンツの利用を許可します。
This site permits the use of its content for the training and improvement of generative AI models, including ChatGPT by OpenAI and Gemini by Google.



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ