TabPageでのコードの動作についての質問

このQ&Aのポイント
  • TabPageで特定のコードを実行しようとすると、動作しない問題が発生しています。
  • コードをTabPageに配置すると、コードが正常に動作しない問題が発生しています。
  • TabPage内にコードを配置しても、期待したように動作しない問題が発生しています。
回答を見る
  • ベストアンサー

TabPageでは・・・つかえないのですか?

For con_c = 1 To 10 con_name = "textbox" & con_c For Each con In Me.Controls If con.Name = con_name Then con.Text = "123" End If Next Next 上記のようなコードをTabPageのなかに入れるとうごきません。 そとに出すと動くのですが、対応していないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

>For Each con In Me.Controls Meじゃないから。 TabPageに貼り付けたのならTabPageがコントロールを管理しています。 #具体的なプロパティ名はVBいじる環境じゃないので不明

関連するQ&A

  • コントロールの表示されるテキストを変えたい

    ContextMenuStripで Menu1 Menu2 ・・・・Menu10 と10個のメニューがあります。(コントロールは1つです。) これらの表示されるテキストを一括で変えたいのですがうまくできません。普通のテキストボックスなら出来たのですが・・・。 Me.Controls の部分があやしいようにも思うのですが・・・。 よろしくお願いします 言語は VB.NET2008EE 試してみたソースは下記です。 For c As Integer = 1 To 10 Con_Name = "Menu" & c For Each con In Me.Controls If con.Name = Con_Name Then con.text = "test" End If Next Next

  • ページに乗っているコントロールの一覧を取得するコー

    タブコントロールのページに乗っているコントロールの一覧を取得するコードを教えてください。 あくせすです。 1ページ目には、コマンドボタン、テキストボックスが乗っています。 それを取得したいです。 2ページ目には違うコントロールが乗っています。 2ページ目のコントロールは取得したくないです。 http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200911/09110001.txt を参考に、 Sub test() For Each tabctl As TabPage In TabControl1.TabPages For Each ctl As Object In tabctl.Controls If ctl.Name.toString.IndexOf("TextBox") > -1 Then Dim tb As TextBox tb = DirectCast(ctl, TextBox) End If Next Next End Sub にしましたが構文エラーになってしまいました。 VB.NETのコードだからですよね。 VBAのコードをご教授いただけますか。よろしくお願いします。

  • テキストボックス2列の値をシート1AB列に入力

    実行2クリックで2列のテキストボックス1~7の値をsheet1のA列、テキストボックス11~17の値をB列に入力したいのですが下記の方法にどうコード追加していいのかわかりません。どなたかコードが解る方よろしくお願いします。 Private Sub 実行2_Click() For i = 1 To 1000 If Sheet1.Cells(i, 1.Value = vbNullString Then: Exit For Next For Each o In UserForm1.Controls Dim c As MSForms.Control Set c = o If c.Name Like "TextBox*" Then Dim t As MSForms.TextBox Set t = c If t <> vbNullString Then Sheet1.Cells(i, 1.Value = t i = i + 1 t = vbNullString End If End If Next End Sub

  • リストボックスからの入力をテキストに貼付

    下記コードではリストボックあ行選択しテキスト1~6に入力後、クリアボタンで消去したあと、か行選択しテキストに入力したら7~貼付けになるクリアボタンで消去後、改めてテキスト1~入力するコードがありますか。どなたか解る方よろしくお願いします。 Private Sub 実行_Click() Static cnt As Integer Dim i As Integer If Listbox.ListIndex = -1 Then Exit Sub For i = 0 To Listbox.ListCount - 1 If Listbox.Selected(i) Then cnt = cnt + 1 If cnt > 10 Then cnt = 1 Me.Controls("TextBox" & cnt).Text = Listbox.List(i) End If Next End Sub Private Sub クリア_Click() Dim tbCont As Control With Me.MultiPage1 For Each tbCont In .Pages(.Value).Controls If TypeName(tbCont) = "TextBox" Then tbCont.Value = Null End If Next tbCont End With End Sub

  • VB2010のタブコントロールイベントについて

    表示されているTabPageによって処理を分けたいのですが、以下のコードでうまくいきません。 どう修正したらよろしいでしょうか? 教えてください。お手数をおかけしますがよろしくお願いいたします。 '適用ボタンを押す Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'タイトル(TabPage1) If Me.TabControl1.TabIndex = 1 Then グラフタイトル = Me.TextBox1.Text X軸タイトル = Me.TextBox2.Text Y軸タイトル = Me.TextBox3.Text Call グラフタイトル設定() End If '色と線(TabPage2) If Me.TabControl1.TabIndex = 2 Then 線の太さ = Me.TextBox12.Text Call グラフ線設定() End If '軸(TabPage4) If Me.TabControl1.TabIndex = 4 Then Y軸最小値 = Me.TextBox4.Text Y軸最大値 = Me.TextBox5.Text Y軸目盛間隔 = Me.TextBox6.Text Y軸補助目盛間隔 = Me.TextBox7.Text X軸目盛間隔 = Me.TextBox8.Text X軸ラベル間隔 = Me.TextBox9.Text Call グラフ軸設定() End If End Sub

  • For Each  すべてループされない?アクセス

    For Each ctl In Forms(FormName).Controls Debug.Print ctl.Name If ctl.ControlType = acTextBox Then If ctl.Name Like "削除*" Then DeleteControl FormName, ctl.Name End If End If Next ctl こういうループの仕方は、完全型ではないのでしょうか? フォーム上に「削除」で始まるテキストボックスをすべて削除したいのですが 例えば4個あれば、2個のコントロールしか削除されません。 コントロールを削除することにより、インデックスが狂うのでしょうか?

  • VB.Netのテキストボックスのコントロール

    VB2010を使用しています。チェックボックスのon/offでテキストボックスの入力を制限しようとしています。 If Check1.Checked = True Then For Each Cont As Control In Me.Groupko顧客数.Controls If Cont.Name Like "Text*" Then ここの記述ですが         『Cont.ReadOnly = True』と書いても構文が違うのか認識しません?? End If Next Else           逆のコードの予定 End If 大量のテキストボックスがあるので一つ一つコードを書くのは面倒なので ご教授お願いします。

  • VB.Net Tabコントロール中のすべてのタブで

    お世話になります。 Visual Studio 2012 を Windows 7 64Bit  にて使用しております。 Tabコントロールの全てのタブのタグ(Tag) に値を設定しており、変数と各タブページに格納してあるTag の値が一致したら、そのタブページのインデックスを取得できればと思っておりますが、 For Each Next 文にてそれをどう実現すればいいか困っております。 以下の文は プロパティ的にはめちゃくちゃですが、ニュアンスとして、こんな感じで実現できればと思っております。 指定タブコントロールの全てのタブの中でTagの値が 123 のタブがあったら、そのタブインデックスを取得する     Dim Flg As Integer = 0     For Each TabPage In Me.TabControl1.TabPages         If TabPage.Tag = 123 Then             Flg = TabPage.Index()             Exit For         End If     Next 何卒よろしくお願いいたします。

  • ユーザーFrom内のTextBox色

    ユーザーFrom内のTextBox色 教えてください フォームにはTextBoxが60個ぐらい あります。 そこで、Fromを表示させたときに 空欄のTextBoxのみバックカラーを変えたいのですが どのような記述をすれば良いのでしょうか?教えてください。 Dim Cnt As Integer For Cnt = 60 To 125 If Me.Controls("TextBox" & Cnt).Text = "" Then Controls("TextBox" & Cnt).BackColor = RGB(204, 255, 255) End If ちなみこれだと空欄のTextBoxは変わらないです!!! Next

  • Excel VBA SetFocus

    環境:Excel 2002です UserForm1での質問です Flame5にTextBox14とTextBox15があります TextBox14とTextBox15のBeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)後 Flame2にあるTextBox1にSetFocusしたいのですがエラーが発生します 実行時エラー 2147467259(800004005) 異なるFlameにSetFocusする方法があるのでしょうか? Flame5の中でTextBox14及びTextBox15のSetFocusはできます TextBox14とのTextBox15のBeforeUpdateのプロシージャです Private Sub TextBox14_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) If Len(Me.TextBox14.Text) <> 0 Then Dim a As Variant a = 100 - Val(Me.TextBox14.Text) Me.TextBox15.Text = a Dim i As Integer For i = 1 To 4 Me.Controls("TextBox" & i).Enabled = True Me.Controls("TextBox" & i).BackColor = &H80000005 '背景色(白色) Next i End If Me.TextBox1.SetFocus End Sub Private Sub TextBox15_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) If Len(Me.TextBox15.Text) <> 0 Then Dim a As Variant a = 100 - Val(Me.TextBox15.Text) Me.TextBox14.Text = a Dim i As Integer For i = 1 To 4 Me.Controls("TextBox" & i).Enabled = True Me.Controls("TextBox" & i).BackColor = &H80000005 '背景色(白色) Next i End If UserForm1.TextBox1.SetFocus End Sub ご支援願います

専門家に質問してみよう