

宜しくお願い致します。
エクセルのマクロのフォーム上にtextbox1~textbox10を作成してあります。
これら全てがきちんと入力されているかどうかを調べる命令を書きたいと思っております。
どのようにすればよろしいのでしょうか?
【エラー表示される私の考え】
For i = 1 To 10
If TextBox("& i & ").Value = "" Then
MsgBox ("データを再度入力してください。")
Exit Sub
End If
Next i
if文のところでエラーが出ます。textboxの表示方法がまずいと思うのですが、どうすればよいのかわかりません。ご指導の程宜しくお願い致します。
なお、For~Next文を使わない方法でも構いません。

No.2ベストアンサー
- 回答日時:
こんにちは。
Excelの場合コントロール配列は使えません。
TextBoxがTextBox1~TextBox10という名前であれば
Dim i As Integer
For i = 1 To 10
If Me.Controls("TextBox" & i).Value = "" Then
MsgBox ("データを再度入力してください。")
Exit Sub
End If
Next
TextBoxの名前を変更している場合は
Dim myctrl As Control
For Each myctrl In Controls
If TypeName(myctrl) = "TextBox" And myctrl.Value = "" Then
MsgBox ("データを再度入力してください。")
Exit Sub
End If
Next
でどうでしょうか。
No.1
- 回答日時:
お世話になります。
こんな感じでしょうか。
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To 5
Dim tBoxName As String
tBoxName = "TextBox" & CStr(i)
If ActiveSheet.OLEObjects(tBoxName).Object.Value = "" Then
MsgBox (tBoxName & "を入力してください")
Exit For
End If
Next i
End Sub
naganaga_001様
早速御回答いただきありがとうございます。
試してみたのですが・・・・
If ActiveSheet.OLEObjects(tBoxName).Object.Value = "" Then
の部分でエラーが出てしまいました。
フォーム上のデータの入力の有無を確認するものなので、たぶん、ActiveSheetの部分を変えなければならないと思うのですが、どうもわかりません。
OLEObjectsのところも変えないといけないのかもしれません・・・。
誠に恐縮ではございますが、再度、御教示お願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) R列の1111/11/11以外、且つQ列の×の条件で該当行のAからAE列までオレンジに塗りつぶす 2 2022/07/02 10:18
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Excel(エクセル) vba 「Nextに対するForが見当たりません」のエラーが発生する原因 1 2022/10/21 15:46
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
UserForm1.Showでエラーになります。
工学
-
-
4
VBAのフォームでTextBoxがいっぱいある時
Access(アクセス)
-
5
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
6
テキストボックス(VBA)でEnterを押したときに作動するマクロ
Access(アクセス)
-
7
VBA フォームのテキストボックスにセルの値を表示させたいが改行していたら改行もあわせて表示させたい
Excel(エクセル)
-
8
ExcelVBAでテキストボックスの表示形式を小数点第二位まで表示する方法
Visual Basic(VBA)
-
9
テキストボックスの番号の取得
Visual Basic(VBA)
-
10
VBからエクセルのテキストボックスの名称を取得したい
Visual Basic(VBA)
-
11
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
12
ユーザーフォームでTextBox1にカーソルを移動したい
Excel(エクセル)
-
13
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
14
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
15
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
16
ユーザーフォームへのデータ入力を繰り返す方法
Visual Basic(VBA)
-
17
エクセルVBA テキストボックスへのセットフォーカスについて
Visual Basic(VBA)
-
18
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
19
ユーザーフォームのSetFocusが働かない?
その他(プログラミング・Web制作)
-
20
C#のループでtextboxに値を入れる方法
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスの番号を使っ...
-
エクセルVBA テキストボックス...
-
初歩的な事だと思います。 Sub...
-
数字以外の入力をエラーにする...
-
Excel-VBAでInputBox+Pulldown...
-
入力項目を残したいのですが・・・
-
アクセスのマクロ
-
入力フォームへ、データを自動...
-
アルファベットGの小文字の入力
-
TextBoxから数字が文字...
-
CGIで2台のコンピュータの通信方法
-
入力フォームの値をQRコードで...
-
複数行の入力を受け取る方法
-
ExcelVBAのユーザーフォームで...
-
POST時に履歴を残さない方法
-
至急です!Excelがわかりません
-
UWSC すごく初歩的な質問で申...
-
正規表現で2回以上連続する文字...
-
HTMLのタグ「ime-mode」について
-
VBAでInputBoxの再入力をさせる...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA テキストボックス...
-
初歩的な事だと思います。 Sub...
-
テキストボックスの番号を使っ...
-
Excel-VBAでInputBox+Pulldown...
-
EXCEL VBA で指定した範囲に入...
-
数字以外の入力をエラーにする...
-
VBAでInputBoxの再入力をさせる...
-
DataGridView 列ごとの入力制限
-
エディットボックスの入力制限...
-
入力フォームの値をQRコードで...
-
HTMLで全角文字のみ入力するに...
-
VBA R1C1形式で変数の入力について
-
TextBoxから数字が文字...
-
アクセスのマクロ
-
excel vba でユーザーフォーム...
-
DataGridViewの桁数制限に関して
-
Geminiって、Geminiの入力フォ...
-
c#でTextBoxの入力制限
-
教えて!全角文字「μ」の半角
-
「イ分」・・・フンという文字...
おすすめ情報