現在適用中のコード:(VB2008)
Dim objtextbox As Control
For Each objtextbox In Me.Controls
objtextbox.Text = ""
Next
問題:
1、VB6と違い、Captionプロパティがなくなったため、TextBox以外のTextプロパティも空になってしまうので、コントロールがTextBoxのときだけ処理したい。
2、上記のコードだと、フォーム上にあるグループボックスの中は適用されない。In Me.controles 一発ですべてのグループボックスの中のTextプロパティまで処理したい。
3、そんなのは無理という場合、すべてのコントロールをフォームがロードされた状態にしたい。(できれば、CloseしてShowするのは避けたい)
いろいろ試してみましたが、うまくコードがかけません。ご迷惑をおかけいたしますが、皆様の知恵をお貸しください。
No.4ベストアンサー
- 回答日時:
[準備する関数]
'指定されたコントロールコレクション内のテキストボックスをクリアする
Private Sub ClearTextBox(cc As Control.ControlCollection)
For Each ctl As Control In cc
If TypeOf ctl Is TextBox Then
CType(ctl, TextBox).Text = String.Empty
Else If ctl.Controls.Count > 0 Then
ClearTextBox(ctl.Controls)'再帰処理
End If
Next
End Sub
[使用例]
ClearTextBox(Me.Controls)
※テキスト書きなので、間違いがあるかもしれませんw
お返事ありがとうございました。
まさにやりたかったことができました。
再帰処理はおぼろげながら考えたのですが、どこをどうすればうまくできるのかまったくわからない状態でした。
このままのコードで十分活用できます。
No.3
- 回答日時:
下記のコードを試してください
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim c As Control
For Each c In Me.Controls
If TypeOf c Is TextBox Then 'TEXTBOXか?
c.Text = ""
End If
If TypeOf c Is GroupBox Then 'GroupBoxの処理
Dim c2 As Control
For Each c2 In c.Controls
If TypeOf c2 Is TextBox Then
c2.Text = ""
End If
Next
End If
Next
End Sub
お返事ありがとうございました。
教えていただいたコードだと、フォーム上に複数のグループボックスがあると、最初の1番目しか処理できませんでした。
いろいろと考えてみたところ、教えていただいたコードを改造することで処理できるようになりました。
No.1
- 回答日時:
dim aaa(3) as string
aaa(0) = TextBox1
aaa(1) = TextBox2
aaa(2) = TextBox3
aaa(3) = TextBox4
----上記処理をフォームの起動時に実行----
dim i as Integer
for i = 0 to 3
aaa(i).text = ""
next i
----クリアしたいところで上記を実行----
上記みたいにテキストボックスだけ配列化すればできます
もっとスマートな方法があるかもしれませんけど
お返事ありがとうございました。
配列に格納することも考えたのですが、TextBoxの数が多くなると面倒ですのでfor each で処理する方法を考えました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) エクセルシート中の全角英数字を半角に変換したい 4 2022/07/07 13:14
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
テキストボックスの中身をリセット(クリア)したい
Visual Basic(VBA)
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
VB.net 重複チェックがしたいです
Visual Basic(VBA)
-
-
4
複数のtextboxの処理を一括で行えませんか?
Visual Basic(VBA)
-
5
VB.NETでのイベントの途中終了
Visual Basic(VBA)
-
6
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
7
コンボボックスで選択したものをクリアーしたい(アクセス VBA)
Access(アクセス)
-
8
「指定されたキャストは有効ではありません。」とエラーが出てしまいます。
Microsoft ASP
-
9
visual studio でインデントを自動的に揃えるショートカットキー
その他(プログラミング・Web制作)
-
10
テキストボックスの名前に変数をつける
Visual Basic(VBA)
-
11
GROUP BYを行った後に結合したい。
Oracle
-
12
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
13
テキストボックス(VBA)でEnterを押したときに作動するマクロ
Access(アクセス)
-
14
【VB】コンボボックスにデータベースから取り出した値を入れたい
Visual Basic(VBA)
-
15
TextBoxでEnterキーを押すと、にあるButtonを押したのと同じ効果を出す方法
Visual Basic(VBA)
-
16
VB.NETのテキストボックスの書式指定
Visual Basic(VBA)
-
17
TextBoxに日付を自動的に入れる
Visual Basic(VBA)
-
18
VB.NETで他のプロジェクトで作成したフォームを使う方法
Visual Basic(VBA)
-
19
Handlesについて
Visual Basic(VBA)
-
20
DataGridViewの、選択されている行を取り出したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
EXCEL VBA マクロ 実行する度に...
-
メルカリのメルカードで買い物...
-
switch の範囲指定
-
VBAでループ内で使う変数名を可...
-
【Excel】特定の文字を含むセル...
-
DoEventsがやはり分からない
-
Do~Loopした回数をカウントしたい
-
C言語 b += a ? 1 : 0; の意味
-
VBの質問#if 0 then ってどう...
-
UMLでの例外処理
-
実時間処理ってなんですか?
-
インタラクティブの反対語は?
-
リョウ・・・量?料?
-
findは動くがfindnextがマクロ...
-
VBAでセルに値が入力されるまで...
-
VB.NET Excelを読み込んでDataT...
-
Select Case文でこのようなこと...
-
月度は何て読みますか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
メルカリのメルカードで買い物...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
【Excel】特定の文字を含むセル...
-
EXCEL VBA マクロ 実行する度に...
-
DoEventsがやはり分からない
-
UMLでの例外処理
-
月度は何て読みますか?
-
switch の範囲指定
-
VBの質問#if 0 then ってどう...
-
セルの値が0はクリアするマクロ
-
VB.NET Excelを読み込んでDataT...
-
Do~Loopした回数をカウントしたい
-
Loadイベント中にほかのイベン...
-
Select Case文でこのようなこと...
-
findは動くがfindnextがマクロ...
-
緊急です。 知り合いから50kgの...
-
リョウ・・・量?料?
-
理不尽、行き場のないイライラ...
おすすめ情報