VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2004/03/30(Tue) 20:10
投稿者魔界の仮面弁士
Eメール
URL
タイトルRe: コントロール名と配列

幾つかの手法が考えられます。



案1:
  'コントロール名はループさせない
  Dim i As Integer
  For i = 0 To 2
      Text1(i).Text = "AAA"
      Text2(i).Text = "AAA"
  Next


案2:
  '全コントロールを列挙し、コントロール名で判断
  Dim Ctrl As Control
  For Each Ctrl In Controls
      If Ctrl.Name Like "Text[12]" Then
          If Ctrl.Index = 0 Or Ctrl.Index = 1 Or Ctrl.Index = 2 Then
              Ctrl.Text = "AAA"
          End If
      End If
  Next


案3:
    'For Eachでコントロール配列の配列を列挙
    Dim TextBoxes As Variant
    Dim i As Integer
    For Each TextBoxes In Array(Text1, Text2)
        For i = 0 To 2
            TextBoxes(i).Text = "AAA"
        Next
    Next


案4:
    'Controlsコレクションにコントロール名を指定
    Dim num As Integer
    Dim i As Integer
    For num = 1 To 2
        For i = 0 To 2
            Controls("Text" & CStr(num))(i).Text = "AAA"
        Next
    Next

案5:
  '処理したいコントロールを集めたコレクション(または配列)を用意しておく
  Option Explicit
  Private MyTextBoxes As Collection
  Private Sub Form_Load()
      'コレクションとして登録しておく
      Set MyTextBoxes = New Collection
      MyTextBoxes.Add Text1(0)
      MyTextBoxes.Add Text1(1)
      MyTextBoxes.Add Text1(2)
      MyTextBoxes.Add Text2(0)
      MyTextBoxes.Add Text2(1)
      MyTextBoxes.Add Text2(2)
  End Sub
  Private Sub Command1_Click()
      '登録しておいたコレクションを使って処理
      Dim Txt As TextBox
      For Each Txt In MyTextBoxes
          Txt.Text = "AAA"
      Next
  End Sub


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -