No.2ベストアンサー
- 回答日時:
コレクションを利用した方法を紹介します。
下記は机上コーディングのみなので、そのままペーストで確実に動作する保証はできないですが。
'チェックする対象のテキストボックスを格納するコレクション
Dim colValueCheckTextBoxesAs Collection
'コレクションを初期化する処理
Private Sub InitValueCheck()
'コレクションを作成する
Set colValueCheckTextBoxes = New Collection
'チェックする対象のテキストボックスへの参照を追加する
With colValueCheckTextBoxes
.Add テキストボックス1
.Add テキストボックス2
.Add テキストボックス3
・・・・・
.Add テキストボックスN
End With
End Sub
'空白のチェックを行う
'返り値True/False 空白項目がない/空白項目がある
Private Function DoValueChecks() As Boolean
Dim i As Long
'成功すると仮定して返り値を初期化
DoValueChecks = True
'コレクションに追加されたテキストボックスの値を確認する
For i = 1 To colValueCheckTextBoxes.Count
With colValueCheckTextBoxes(i)
'最初に発見された空白のテキストボックスコントロールにフォーカスを設定して終了
If .Value = vbNullString Then
MsgBox .Name & "が未入力です"
.SetFocus
'返り値を異常終了に設定してループを抜ける
DoValueChecks = False
Exit For
End If
End With
Next
End Function
最初に一度だけ(例えばFormLoad時など)InitValueCheckを呼び出す必要があります。
また、チェック実行時にDoValueChecksを実行して、Trueが返った場合はすべての項目が入力された状態だと判定できます。
入力するテキストボックスが増えた場合、InitValueCheck内に、そのテキストボックスへ参照を追加する必要がある、と自動メンテナンスではないという欠点はありますが。
入力必須ではない項目がある場合、InitValueCheckで追加しないことでその項目はチェック対象にならない、と制御できるという利点があります。
親切丁寧な指導ありがとうございました。
初心者なので本当に助かりました。構文の内容を
よく読んでチャレンジしてみたいと思います。
また機会がありましたら、ご指導お願い致します。
No.3
- 回答日時:
No1です。
>すいませんが、内容の説明をお願いできないでしょうか?
お易い御用なり。
とは言ってもそれぞれのヘルプを見れば分かることですので改めて説明するようなところはないのですが(^^;;
--------------------------------------------
'コマンドボタンのクリックイベント
Private Sub CommandButton1_Click()
'Nは、TextBox1,2,3...の番号取得用変数
Dim N As Integer
'TextBoxが15個あるのでそれをFor文でまわす
For N = 1 To 15
'MeはUserFormのこと。別になくてよい
'Controls("TextBox1") でTextBox1を表すので
'それを15も書くと煩わしいので変数Nと組合せて15個分を1個で済むようにする
'Textboxの内容が空白かどうかきく
If Me.Controls("TextBox" & N).Value = "" Then
'空白(未入力)だったらTextBox欄の項目表示に使っているLabelのCaptionプロパティを表示する
MsgBox Me.Controls("Label" & N).Caption & " は未入力です"
'メッセージを確認したら未入力TextBoxへ飛ぶ
Me.Controls("TextBox" & N).SetFocus
'イベント処理を抜ける
Exit Sub
End If
Next N
End Sub
以上。
丁寧な解説で本当に助かりました。早速試してみたところ
見事に成功致しました。無事解決です。
経験者の方は簡単なことかも知れませんが、自分で作った
ものが機能すると感動です。
本当にありがとうございました。
No.1
- 回答日時:
こんばんは。
UserFormには、CommandButton(例えば書込み用)があって、それをクリックした時、TextBoxの未入力チェックでいいんですよね。
UserFormにCommandButtonがひとつと、
LabelとTextBoxのペアが15個配置してあるとする
(LabelはTextBoxの見出し用)
------------------------------------------
Private Sub CommandButton1_Click()
Dim N As Integer
For N = 1 To 15
If Me.Controls("TextBox" & N).Value = "" Then
MsgBox Me.Controls("Label" & N).Caption & " は未入力です"
Me.Controls("TextBox" & N).SetFocus
Exit Sub
End If
Next N
End Sub
----------------------------------------
たとえ上記が勘違いであるとしても、
少なくとも、Controlsを使うことでFor文でまわすことができます。
以上。
この回答への補足
ご回答ありがとうございます。説明不足ですいませんでした。
はい、コマンドボタンでの処理です。
ところで、すいませんが、内容の説明をお願いできないでしょうか?
超初心者なもので、構文の理解をしておきたいのですが・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- Visual Basic(VBA) WordのVBAについて 5 2023/01/11 14:38
- Visual Basic(VBA) テキストボックスの値を該当セルに登録する方法 2 2022/11/23 18:47
- Visual Basic(VBA) Vba テキストボックスの文字列をボタンで入力するとテキストボックスの端の文字列が更新されない 2 2022/05/21 23:32
- その他(Microsoft Office) パワーポイントやワード、エクセルでのスライドショーやテキストの微調整について 1 2023/01/12 05:50
- Visual Basic(VBA) ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:16
- IT・エンジニアリング ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:17
- その他(パソコン・スマホ・電化製品) ワードでテキストボックス内の文字を連動させない方法 2 2023/02/09 16:56
- Visual Basic(VBA) Vba テキストボックスでボックスのサイズ超えると文字列入力できない 2 2022/05/20 08:09
- Access(アクセス) Access 複数条件検索の設定が上手く行きません 1 2022/07/22 20:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
visual basic初心者です。 visu...
-
アクセスできない保護レベルエ...
-
【VB.NET】テキストボックスに...
-
visual studio 2008 C# で、値...
-
VBAのフォーム カーソル移動
-
テキストボックスを空白にする方法
-
コンボボックスからテキストボ...
-
Excel ユーザーフォームで計算 ...
-
ユーザーフォームへのデータ入...
-
ACCESS 除算での小数点切上げ方法
-
エクセルVBAでテキストボッ...
-
C#のループでtextboxに値を入れ...
-
二点の座標から距離や角度を求...
-
Excel VBAでsub,dimは何の略?
-
VBA public変数はどのようなこ...
-
C言語のサフィックスについて
-
レコードセットにnullの場合
-
リストビューの列ヘッダーの幅...
-
Excel vba で複数のテキストの...
-
subsequentとnextの違いってな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAでテキストボッ...
-
VBAで入力数値について
-
ユーザーフォームへのデータ入...
-
アクセスできない保護レベルエ...
-
【VB.NET】テキストボックスに...
-
visual basic初心者です。 visu...
-
Excel ユーザーフォームで計算 ...
-
コンボボックスからテキストボ...
-
テキストボックスを空白にする方法
-
【C#】コンボボックスにおけるS...
-
VBAのユーザーフォームで、テキ...
-
テキストボックスに大文字を
-
テキストボックス1の値に対する...
-
テキストボックスとカーソルの制御
-
整数かどうかチェックする
-
Vba テキストボックスの文字列...
-
VBAのフォーム カーソル移動
-
VBSのプログラム
-
ACCESS 除算での小数点切上げ方法
-
TextBoxの内容を右寄せ
おすすめ情報