• ベストアンサー

フォーム上のすべてのTextBoxを空にしたい

kikujackの回答

  • kikujack
  • ベストアンサー率47% (17/36)
回答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

xiaolong_goo
質問者

お礼

お返事ありがとうございました。 教えていただいたコードだと、フォーム上に複数のグループボックスがあると、最初の1番目しか処理できませんでした。 いろいろと考えてみたところ、教えていただいたコードを改造することで処理できるようになりました。

関連するQ&A

  • TextBoxの場合だけ処理したい

    VB2005でフォームの中のテキストボックスの中身をすべて""(空白文字列)にしたいと思っています。 VB6の時には、以下のコードでテキストボックスの中身を""にしていたのですが、VB2005になってから、captionプロパティがなくなって、この方法ではラベルやボタンまで""になってしまいます。 Dim TextBoxControl As Control On Error Resume Next For Each TextBoxControl In Me.Controls TextBoxControl.Text = "" Next 要するにこのコードの中にifでTextBoxの場合のみ処理するように書けばいいと思うのですが、その方法が見つかりません。if ~ thenの間に書く式を教えていただきたいと思います。

  • VBAでコントロール配列を持つことは可能ですか?

    Excel2002、OSはXPです。 VBではコントロールに配列を持つことが出来ましたが、 VBAでコントロール配列を持つことは可能でしょうか? やりたいことはユーザーフォームにラベルを100個ぐらい貼り付けて、 テキストボックス入力した値がCell(i,1)と等しければ、 i番目のラベルのCaptionに文字を入力したい。という感じです。 もしVBのようにコントロール配列を持てれば、 If TextBox1.text=Cells(i,1) Then Label(i).Caption="~~" という風に出来るのですが、どうも配列の設定がVBのようにできません。 プロパティにINDEXが無いですし、オブジェクト名を同じにしたら エラーとなってしまいますし。。 もし出来ないのであれば、何か回避策のようなものはないでしょうか? 力技で100個IFを書けば出来ることは出来るのですが・・ If TextBox1.text=Cells(i,1) Then If i = 1 Then Label1.Caption="~~" ElseIf i=2 then Label2.Caption="~~" ・・・・

  • コントロール配列と同じような扱い方

    TextBox1、TextBox2、TextBox3・・・・TextBox10 と10個のテキストボックスにVB6で使っていたコントロール配列と同じような処理の仕方をコードで教えていただけませんか。 for i=0 to 9 TextBox(i).Text=i next i 上記のコードをVB.NETで書くとすれば、どのように書けばいいかということさえわかれば、なんとか頑張れる気がします。

  • エクセル VBA OptionButtonからTextBox

    すいません! OptionButtonなら 下記の記述でエラー表示を 簡単にできるのですが これがOptionButtonではなく TextBoxならどのように変化したら 良いのでしょうか? すいません、教えて下さい! Private Sub 記録_Click() Dim i As Integer Dim Cnt As Integer Cnt = 0 For i = 1 To 6 Step 1 If Me.Controls("OptionButton" & i).Value Then Cnt = i Exit For End If Next i If Cnt = 0 Then MsgBox "選択されていません" Exit Sub End If If Me.Controls("Combobox" & Cnt).Value = "" Then MsgBox Me.Controls("OptionButton" & Cnt).Caption & " の内容が選択されていません" Exit Sub End If With 記入フォーム .TextBox5.Value = Me.Controls("OptionButton" & Cnt).Caption .TextBox6.Value = Me.Controls("Combobox" & Cnt).Value End With Unload Me End Sub

  • Access2000でTextBox変数の代入

    Access2000でTextBox変数を作成し、条件に応じて フォーム上に配置した2つのテキストボックスをその変数に代入したいのですが、うまくいきません。 Public tBox as TextBox If i = 1 Then Set tBox = テキスト1 ElseIf i = 2 Then Set tBox = テキスト2 End if ※ テキスト1、テキスト2はフォーム上に配置した テキストボックスの名称 このコードを実行すると、テキスト1は テキスト1.Textと解釈され、Textプロパティに何も設定 されていない場合、tBoxにはNULLが代入されます。 Textプロパティの値ではなく、テキストボックスオブジェクトそのものを変数に代入するにはどうすればよいのでしょうか。 ご教授お願いします。 環境は OS:Windows2000 Professional   Access2000 です。

  • TextBoxの入力規制

    お世話になります。VB2005での質問です。 VB6.0の時は、Frameの上にTextBoxを貼り付け、そのFrameのEnableをTrueにしたりFalseにしたりして、入力の規制をかけていました。 そうすると、TextBoxの外観を変えずに規制をかけることができましたし、入力項目のいくつかをひとつのFrameに乗せておけば、一度に全体を規制することができました。Frameもラインを消すことができましたので、見た目もきれいにできていたのですが、VB2005にはそのFrameがないようですが、同じような機能を持ったコントロールはないでしょうか。 GroupBoxを使用した場合、そのBoxのEnableをFalseにすると、上に乗せたTextBoxの色がグレーに変わってしまいますし、GroupBoxにはプロパティにBorderStyleが見当たらず、ラインを消す方法もわかりません。 とても困っています。よろしくお願いいたします。

  • VB6.0でのTextboxの高さ変更

    VB6.0を使用しています。 下記のようにテキストボックスを動的配置した際にボックスの高さを変更したいのですが、文字の大きさ等に依存しているよう?で変更できません。 よく似た質問でMultiline をTrueにするような物があり、試してみましたがエラーとなってしまいます。 もう少し小さくしたいのですが何を変更・追加すればよいのでしょうか? どなたかご教授願います。 Private Sub Form_Load() Dim add_tbox As TextBox Set add_tbox = Controls.Add("VB.textbox", "text") With add_tbox .Text = "aaa" .Height = 240 '---テキストボックスの高さ .Left = 2270 .Top = 1700 .Width = 350 .FontSize = 9 '.MultiLine = False ---これを追加するとエラー"値の取得のみ可能なプロパティに値を設定する事はできません" .Visible = True End With MsgBox add_tbox.Height '---テキストボックスの高さ確認(270となっている) End Sub

  • VB 2005 Textbox にフォーカスを移動する。

    VB2005でソフト作成中ですが、フォームを開いた時、そのフォーム内にあるTextbox にフォーカスを持って行きたいのですがうまくいきません。フォームロード部分のコードに、Text.Focus()と書いているだけではだめなのでしょうか?どなたかご教授願います。

  • C#で複数のTextboxから検索してTextを書き込む

    C#初心者で困っています OS XP VS2008 ASP.NET C# で作業しています 複数のTextboxを作成して、そのTextboxのTextプロパティに値を書き込もうとしています。 for(int z=1; z<100; z++) { string tt = z.ToString(); Control tx = FindControl("TextBox" + tt); tx.text = "ccccccc"; } txのtextプロパティが出てきません。 どのようにすれば、textプロパティを書き換えることができるのでしょうか、ご教授をお願いします。

  • ACCESSのフォーム操作で、パタメータ入力画面が出てしまします、絞込み

    テーブル→クエリ→フォームで データを表示するロジックです グループ毎に絞込みする為に、 コンボboxを設け、そこにグプープを入れるように作りました。 そのコンボboxにデータを入れ、エンターキーを押した とたんに、 「パラメータ入力/me.コンボ1/[入力の窓]/OK、キャンセル」・・・と出ます コンボboxにはもうデータを入れてあり 「パラメータ入力」の窓は出したくないのですが、 設定した情報は フォームのプロパティのフィルターに 営業所No = [コンボ1] と入れました また、コンボ1のプロパティに更新後処理に 下記のコードを入れました Me.filter = "営業所No = [Me].[コンボ1]" 以上でわかるでしょうか よろしくおねがいします