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

回答編集履歴

10

追記

2021/10/30 12:14

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -11,4 +11,19 @@
11
11
 
12
12
  こういったVBAの型とデータの隙間を埋めてくれる便利な関数として[NZ関数](https://support.microsoft.com/ja-jp/office/nz-%E9%96%A2%E6%95%B0-8ef85549-cc9c-438b-860a-7fd9f4c69b6c)があります。
13
13
  Nullの判定と、値がNullの場合に返却する値を指定する事ができるので、Null判定処理をコンパクトに纏める事が出来ます。
14
- ※返却値を省略した場合はコードの内容から自動的な変換もするので、理解して使用する分には便利です。
14
+ ※返却値を省略した場合はコードの内容から自動的な変換もするので、理解して使用する分には便利です。
15
+
16
+ > プログラムの基本からするとこの対処法が望ましい
17
+
18
+ 「理解した上で、臨機応変に」というのが望ましい事だと思います。
19
+
20
+ 以下の組合せはどちらもエラーにはなりません。
21
+ ```VBA
22
+ Private Sub 文字表示(表示文字 As String)
23
+
24
+ 文字表示(Nz(textboxA))
25
+ ''''
26
+ Private Sub 文字表示(表示文字 As Variant)
27
+
28
+ 文字表示(textboxA)
29
+ ```

9

推敲

2021/10/30 12:14

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,12 +1,11 @@
1
- VBAの場合NUllが許されるのはVariant型です。
1
+ VBAの場合NUllが許されるのはVariant型です。(テキストボックスなどもある意味Variant型です)
2
2
  (Nullでない場合に値によって内部的に型が決まります)
3
3
  一方テーブルの型にはVariant型はなく、Nullを許可しない設定にしない限り、全ての型にNullはあり得ます。
4
4
  ※NotNullの指定をしていたとしても、SQLでouter joinするとNullは返却されますから、データとしてはNullがあり得る事を前提として考えるべきですが。
5
5
 
6
- ですので、Null対応としては、以下の併用ですね。
6
+ ですので、Nullがあり得る場合の対応としては、以下の併用ですね。
7
7
  ・Variant型を使用する
8
8
   NullはNullのままです。便利な分明示的な型よりは低速です。
9
-  クエリーから呼び出す関数のパラメータの型としては良く使用します。
10
9
  ・Null判定を行う
11
10
   最も簡潔になるのがNz()
12
11
 

8

推敲

2021/10/30 09:37

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -11,5 +11,5 @@
11
11
   最も簡潔になるのがNz()
12
12
 
13
13
  こういったVBAの型とデータの隙間を埋めてくれる便利な関数として[NZ関数](https://support.microsoft.com/ja-jp/office/nz-%E9%96%A2%E6%95%B0-8ef85549-cc9c-438b-860a-7fd9f4c69b6c)があります。
14
- Nullの判定と、値がNullの場合に返却する指定する事ができるので、Null判定処理をコンパクトに纏める事が出来ます。
14
+ Nullの判定と、値がNullの場合に返却する値を指定する事ができるので、Null判定処理をコンパクトに纏める事が出来ます。
15
15
  ※返却値を省略した場合はコードの内容から自動的な変換もするので、理解して使用する分には便利です。

7

推敲

2021/10/30 09:33

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -3,12 +3,12 @@
3
3
  一方テーブルの型にはVariant型はなく、Nullを許可しない設定にしない限り、全ての型にNullはあり得ます。
4
4
  ※NotNullの指定をしていたとしても、SQLでouter joinするとNullは返却されますから、データとしてはNullがあり得る事を前提として考えるべきですが。
5
5
 
6
- ですので、Null対応としては、以下の何れかです。
6
+ ですので、Null対応としては、以下の併用です
7
+ ・Variant型を使用する
8
+  NullはNullのままです。便利な分明示的な型よりは低速です。
9
+  クエリーから呼び出す関数のパラメータの型としては良く使用します。
7
10
  ・Null判定を行う
8
11
   最も簡潔になるのがNz()
9
- ・簡易にエラーを回避する為にVariant型を使用する
10
-  NullはNullのままです。便利な分明示的な型よりは低速です。
11
-  クエリーから呼び出す関数のパラメータの型としては良く使用します。
12
12
 
13
13
  こういったVBAの型とデータの隙間を埋めてくれる便利な関数として[NZ関数](https://support.microsoft.com/ja-jp/office/nz-%E9%96%A2%E6%95%B0-8ef85549-cc9c-438b-860a-7fd9f4c69b6c)があります。
14
14
  Nullの判定と、値がNullの場合に返却する型指定する事ができるので、Null判定処理をコンパクトに纏める事が出来ます。

6

推敲

2021/10/30 09:14

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -4,8 +4,11 @@
4
4
  ※NotNullの指定をしていたとしても、SQLでouter joinするとNullは返却されますから、データとしてはNullがあり得る事を前提として考えるべきですが。
5
5
 
6
6
  ですので、Null対応としては、以下の何れかです。
7
+ ・Null判定を行う
7
- ・Null判定を行う※最も簡潔になるのがNz()
8
+  最も簡潔になるのがNz()
8
- ・簡易にエラーを回避する為にVariant型を使用する※NullはNullのまま
9
+ ・簡易にエラーを回避する為にVariant型を使用する
10
+  NullはNullのままです。便利な分明示的な型よりは低速です。
11
+  クエリーから呼び出す関数のパラメータの型としては良く使用します。
9
12
 
10
13
  こういったVBAの型とデータの隙間を埋めてくれる便利な関数として[NZ関数](https://support.microsoft.com/ja-jp/office/nz-%E9%96%A2%E6%95%B0-8ef85549-cc9c-438b-860a-7fd9f4c69b6c)があります。
11
14
  Nullの判定と、値がNullの場合に返却する型指定する事ができるので、Null判定処理をコンパクトに纏める事が出来ます。

5

訂正

2021/10/30 09:10

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -9,4 +9,4 @@
9
9
 
10
10
  こういったVBAの型とデータの隙間を埋めてくれる便利な関数として[NZ関数](https://support.microsoft.com/ja-jp/office/nz-%E9%96%A2%E6%95%B0-8ef85549-cc9c-438b-860a-7fd9f4c69b6c)があります。
11
11
  Nullの判定と、値がNullの場合に返却する型指定する事ができるので、Null判定処理をコンパクトに纏める事が出来ます。
12
- さらに、返却値を省略した場合はコードの内容から自動的変換してくれます。
12
+ ※返却値を省略した場合はコードの内容から自動的変換もするので、理解して使用る分には便利です

4

推敲

2021/10/30 09:04

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -3,10 +3,10 @@
3
3
  一方テーブルの型にはVariant型はなく、Nullを許可しない設定にしない限り、全ての型にNullはあり得ます。
4
4
  ※NotNullの指定をしていたとしても、SQLでouter joinするとNullは返却されますから、データとしてはNullがあり得る事を前提として考えるべきですが。
5
5
 
6
+ ですので、Null対応としては、以下の何れかです。
7
+ ・Null判定を行う※最も簡潔になるのがNz()
8
+ ・簡易にエラーを回避する為にVariant型を使用する※NullはNullのまま
9
+
6
10
  こういったVBAの型とデータの隙間を埋めてくれる便利な関数として[NZ関数](https://support.microsoft.com/ja-jp/office/nz-%E9%96%A2%E6%95%B0-8ef85549-cc9c-438b-860a-7fd9f4c69b6c)があります。
7
11
  Nullの判定と、値がNullの場合に返却する型指定する事ができるので、Null判定処理をコンパクトに纏める事が出来ます。
8
- ※さらに、返却値を省略した場合はコードの内容から自動的に変換してくれます。
12
+ ※さらに、返却値を省略した場合はコードの内容から自動的に変換してくれます。
9
-
10
- ですので、Null対応としては、以下の何れかです。
11
- ・Null判定を行う※最も簡潔になるのがNz()
12
- ・簡易にエラーを回避する為にVariant型を使用する※NullはNullのまま

3

推敲

2021/10/30 07:30

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -9,4 +9,4 @@
9
9
 
10
10
  ですので、Null対応としては、以下の何れかです。
11
11
  ・Null判定を行う※最も簡潔になるのがNz()
12
- ・簡易にエラーを回避する為にVariant型を使用する※Variant型であってもNull判定が必要なケースあるで。
12
+ ・簡易にエラーを回避する為にVariant型を使用する※NullはNullまま

2

推敲

2021/10/30 07:28

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  こういったVBAの型とデータの隙間を埋めてくれる便利な関数として[NZ関数](https://support.microsoft.com/ja-jp/office/nz-%E9%96%A2%E6%95%B0-8ef85549-cc9c-438b-860a-7fd9f4c69b6c)があります。
7
7
  Nullの判定と、値がNullの場合に返却する型指定する事ができるので、Null判定処理をコンパクトに纏める事が出来ます。
8
- ※さらに、値を省略した場合はコードの内容から自動的に変換してくれます。
8
+ ※さらに、返却値を省略した場合はコードの内容から自動的に変換してくれます。
9
9
 
10
10
  ですので、Null対応としては、以下の何れかです。
11
11
  ・Null判定を行う※最も簡潔になるのがNz()

1

推敲

2021/10/30 07:25

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -4,7 +4,7 @@
4
4
  ※NotNullの指定をしていたとしても、SQLでouter joinするとNullは返却されますから、データとしてはNullがあり得る事を前提として考えるべきですが。
5
5
 
6
6
  こういったVBAの型とデータの隙間を埋めてくれる便利な関数として[NZ関数](https://support.microsoft.com/ja-jp/office/nz-%E9%96%A2%E6%95%B0-8ef85549-cc9c-438b-860a-7fd9f4c69b6c)があります。
7
- Nullの判定と、値がNullの場合に返却する型指定する事ができるので、IsNullによる判定処理コンパクトに纏める事が出来ます。
7
+ Nullの判定と、値がNullの場合に返却する型指定する事ができるので、Null判定処理コンパクトに纏める事が出来ます。
8
8
  ※さらに、値を省略した場合はコードの内容から自動的に変換してくれます。
9
9
 
10
10
  ですので、Null対応としては、以下の何れかです。