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

投稿日: 2003/12/12(Fri) 19:19
投稿者魔界の仮面弁士
Eメール
URL
タイトルRe^7: ボタン

> コントロール配列オブジェクトとコントロールオブジェクトの配列
> では違いはないのでしょうか?

ちょっとややこしいのですが、両者は別物です。

一般的に「コントロール配列」と呼ばれる物は、実は配列ではありません。
一種のコレクションオブジェクトなのです。


フォームに、Command1、Text1(0)、Text1(1)を貼り付けた上で、
下記のコードを試してみてください。

'===============================
Option Explicit

Private TextBoxes() As VB.TextBox
Private WithEvents SampleEvent As VB.TextBox

Private Sub Form_Load()
    Dim Index As Integer
    ReDim TextBoxes(2)

    Text1(0).Text = "Text1(0)"
    Text1(1).Text = "Text1(1)"

    For Index = 0 To 2
        Set TextBoxes(Index) = Controls.Add("VB.TextBox", "TextBox" & CStr(Index))
        With TextBoxes(Index)
            .Text = .Name
            .Top = (.Height + 240) * Index
            .Visible = True
        End With
    Next
End Sub

Private Sub Command1_Click()
    If IsArray(TextBoxes) Then
        Debug.Print "TextBoxesは、配列です。"
    Else
        Debug.Print "TextBoxesは、配列ではありません。"
    End If

    If IsArray(Text1) Then
        Debug.Print "Text1は、配列です。"
    Else
        Debug.Print "Text1は、配列ではありません。"
    End If

    If TypeOf TextBoxes(0) Is VB.TextBox Then
        Debug.Print "TextBoxes(0) は、TextBox型です。"
    Else
        Debug.Print "TextBoxes(0) は、TextBox型ではありません。"
    End If
        
    If TypeOf Text1(0) Is VB.TextBox Then
        Debug.Print "Text1(0) は、TextBox型です。"
    Else
        Debug.Print "Text1(0) は、TextBox型ではありません。"
    End If

    On Error Resume Next
    Set SampleEvent = TextBoxes(0)
    If Err.Number = 0 Then
        Debug.Print "TextBoxes(0) は、SampleEvent変数に代入できます。"
    Else
        Debug.Print "TextBoxes(0) は、SampleEvent変数に代入できません。"
    End If
    Err.Clear

    On Error Resume Next
    Set SampleEvent = Text1(0)
    If Err.Number = 0 Then
        Debug.Print "Text1(0) は、SampleEvent変数に代入できます。"
    Else
        Debug.Print "Text1(0) は、SampleEvent変数に代入できません。"
    End If
    On Error GoTo 0
End Sub
'===============================


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

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

- Web Forum -