【VBAで感動する瞬間⑯】引数は“全部書く必要はない”。ポイントだけ押さえればシンプルになる
記事
学び
こんにちは。
ごんた@VBAレッスンです。
先日のエラーのコラムの続きは、ちょっと待ってて下さい。
ちょっと横道にズレて・・・
今日は、初心者さんが必ずつまずく 「引数」 についてお話しします。
■ 初心者の頃は、引数まわりが本当にカオス
はじめの頃って、分からないから
- ネットで調べてコピペ
- マクロ記録で全部の引数がズラッと並ぶ
- 逆に省略されてる引数もある
- 名前付き引数と順番指定が混ざる
- カンマだけ残ってる
こんな状態になりがちです。
あとから見返すと
「何これ…?」
となる。
可読性が壊滅的。
でも、これは初心者さん全員が通る道です。
大丈夫です。私も経験済み。
■ 引数は「設定項目」。全部書く必要はない
引数は、命令に渡す“設定項目”のようなもの。
そして実は、
> 必須だけ書けば動く。
> 必要なところだけ追加すればいい。
これが本質です。
■ 例:引数が長すぎて怖い代表「Workbooks.Open」
マクロ記録すると、こんな呪文が出てきます。
Workbooks.Open( _
Filename:="C:\Test\sample.xlsx", _
UpdateLinks:=0, _
ReadOnly:=False, _
Format:=5, _
Password:="", _
WriteResPassword:="", _
IgnoreReadOnlyRecommended:=False, _
Origin:=xlWindows, _
Delimiter:="", _
Editable:=False, _
Notify:=False, _
Converter:=0, _
AddToMru:=False, _
Local:=False, _
CorruptLoad:=0)
```
初心者さんはこれを見て 「ムリ…」 ってなる。
でも実は——
● 必須引数は Filename だけ
Workbooks.Open "C:\Test\sample.xlsx"
```
これで100%動きます。
必要なときだけ、ピンポイントで追加すればいい。
```
Workbooks.Open Filename:="C:\Test\sample.xlsx", ReadOnly:=True
```
■ ポイントだけ省略せずに書くのがベスト
引数は省略できるものが多いので、
全部書く必要はありません。
でも、逆に
- 読み取り専用にしたい
- 並べ替えの基準を指定したい
- メッセージボックスのボタンを変えたい
こういう“動きが変わるポイント”だけは
省略せずに書くのがベスト
これが一番読みやすく、あとから見ても迷わない。
■ 今日のまとめ
- 引数は「設定項目」
- 必須だけ書けば動く
- 省略可は必要なときだけ追加
- 名前付き引数は読みやすい
- ポイントだけ省略せずに書くのがベスト
- だから、引数は“意外とシンプル”に書ける
初心者さんが「わぁーってなる」部分こそ、
整理すると一気に楽になります。
■ ちょっと宣伝になりますが…
私のレッスンでは、
「引数ってそういうことだったのか!」
とスッキリ理解できるように、丁寧にお伝えしています。
初心者さんが安心して学べるように、
実務に直結する形でサポートしています。
必ずプラスになる時間にします。
初心者さん専用のVBAレッスンはこちら: