質問するログイン新規登録

回答編集履歴

1

説明追記

2021/10/30 07:57

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -14,4 +14,16 @@
14
14
  MsgBox 表示文字
15
15
  End If
16
16
  End Sub
17
- ```
17
+ ```
18
+
19
+ > textboxAとtableCからはNULLが出てくる可能性があり、textboxはA以外にも複数あり、いずれのtextboxも「文字表示」プロシージャを呼び出すので、NULL対処の処理は一行書くだけで済むよう、「文字表示」プロシージャの引数をVariantにしようと思っています。
20
+ プログラムの基本からするとこの対処法が望ましい、というのはありますでしょうか。よろしくお願いします。
21
+
22
+ 状況によりますが、
23
+ VBAコードを記述するときは、Nullが返る可能性がある場合が、変数や引数の宣言の段階でVariant型で宣言するのがいいと思います。
24
+ その後、IsNull関数でNullかどうか判断して処理を場合分けします。
25
+
26
+ NZ関数はNullを0または""に自動変換してくれるのでNullによりエラーを簡単に回避してくれますが、
27
+ Nullと0や""では意味が違う場合もあると思いますので、自分はなるべく使わないようにしてます。
28
+
29
+ クエリ内の式や、コントロールソースの式などで、VBAの関数を使う場合は、Nullを受け付けずエラーを出す関数や式の時はNZ関数をやむを得ず使う場合もあります。