【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レッスンはこちら:
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら