回答編集履歴
2
;
    
        answer	
    CHANGED
    
    | 
         @@ -1,7 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            最近触ってない上、試してないのでエラーがあるかもしれませんがご参考になれば幸甚です。
         
     | 
| 
       2 
2 
     | 
    
         
             
            項目がフォームではなくセルとのことですのでRangeオブジェクトで動的に値を取得できると思います。
         
     | 
| 
       3 
3 
     | 
    
         
             
            これなら、5つ 8つ などと個数が増える場合にも流用できるかと思います。
         
     | 
| 
       4 
     | 
    
         
            -
            ※A1;B1;C1のところは入力必須のセルになりますので必要に応じて修正して下さい。
         
     | 
| 
       5 
4 
     | 
    
         | 
| 
       6 
5 
     | 
    
         
             
            下記は項目のセル位置が連続していない場合に有効です。
         
     | 
| 
       7 
6 
     | 
    
         | 
1
サンプルの追加
    
        answer	
    CHANGED
    
    | 
         @@ -3,22 +3,44 @@ 
     | 
|
| 
       3 
3 
     | 
    
         
             
            これなら、5つ 8つ などと個数が増える場合にも流用できるかと思います。
         
     | 
| 
       4 
4 
     | 
    
         
             
            ※A1;B1;C1のところは入力必須のセルになりますので必要に応じて修正して下さい。
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
      
 6 
     | 
    
         
            +
            下記は項目のセル位置が連続していない場合に有効です。
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
       6 
     | 
    
         
            -
            ``` 
     | 
| 
      
 8 
     | 
    
         
            +
            ```
         
     | 
| 
       7 
9 
     | 
    
         
             
            Dim cells() As String
         
     | 
| 
       8 
10 
     | 
    
         
             
            Dim err As String
         
     | 
| 
       9 
     | 
    
         
            -
            Dim i As Integer
         
     | 
| 
       10 
11 
     | 
    
         | 
| 
      
 12 
     | 
    
         
            +
            '入力必須カラムを「;」区切りで指定
         
     | 
| 
       11 
13 
     | 
    
         
             
            cells = Split("A1;B1;C1", ";")
         
     | 
| 
       12 
14 
     | 
    
         
             
            err = ""
         
     | 
| 
       13 
     | 
    
         
            -
            i = 1
         
     | 
| 
       14 
15 
     | 
    
         | 
| 
       15 
16 
     | 
    
         
             
            For Each cell In cells()
         
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
      
 17 
     | 
    
         
            +
                If Range(cell).Value = "" Then
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
      
 18 
     | 
    
         
            +
                    err = err & cell & ","
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
      
 19 
     | 
    
         
            +
                End If
         
     | 
| 
       19 
20 
     | 
    
         
             
            Next cell
         
     | 
| 
       20 
21 
     | 
    
         | 
| 
       21 
22 
     | 
    
         
             
            If err <> "" Then
         
     | 
| 
      
 23 
     | 
    
         
            +
                '末尾のカンマを削除
         
     | 
| 
       22 
24 
     | 
    
         
             
                err = LEFT(err, LEN(err) - 1)
         
     | 
| 
       23 
25 
     | 
    
         
             
            End If
         
     | 
| 
      
 26 
     | 
    
         
            +
            ```
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
            下記は項目のセル位置が連続している場合に有効です。
         
     | 
| 
      
 29 
     | 
    
         
            +
            ```ここに言語を入力
         
     | 
| 
      
 30 
     | 
    
         
            +
            Dim rng As Range
         
     | 
| 
      
 31 
     | 
    
         
            +
            Dim err As String
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            Set rng = Range("A1:C9")
         
     | 
| 
      
 34 
     | 
    
         
            +
            err = ""
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
            For Each r In rng
         
     | 
| 
      
 37 
     | 
    
         
            +
                If r.Value = "" Then
         
     | 
| 
      
 38 
     | 
    
         
            +
                    err = err & r.Address(False, False) & ","
         
     | 
| 
      
 39 
     | 
    
         
            +
                End If
         
     | 
| 
      
 40 
     | 
    
         
            +
            Next r
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
            If err <> "" Then
         
     | 
| 
      
 43 
     | 
    
         
            +
                '末尾のカンマを削除
         
     | 
| 
      
 44 
     | 
    
         
            +
                err = LEFT(err, LEN(err) - 1)
         
     | 
| 
      
 45 
     | 
    
         
            +
            End If
         
     | 
| 
       24 
46 
     | 
    
         
             
            ```
         
     |