1

ユーザーフォームを作成しました (VBA Projectbrowser で手動で)。実行時にこのユーザーフォームにさまざまなオブジェクト ( など) を入力する VBA コードを作成しましLabelsOptionbuttons。これまでのところ、すべてがうまくいきました

ユーザーフォームには、Excel シートから読み取ったデータが入力され、正しく表示されます。ただし、オブジェクトからの入力を読み取ることができません (たとえばOptionbutton - TRUE or FALSE)。これらのオブジェクトは (ユーザーフォームを除いて) どこにも表示されないため、それらをリンクして別のモジュールで使用できます。

それらは表示されるだけで、実際にはメモリなどに読み込まれるわけではないと思います(初期化されています!?)。

4

1 に答える 1

1

それには2つの方法があります。

方法1

オプション ボタン オブジェクトを Public として宣言します。

モジュールコード

Public theOpBut As Object

Sub Fill()
    If theOpBut.Value = True Then
        ActiveSheet.Cells(1, 5) = 1
    Else
        ActiveSheet.Cells(1, 5) = "NO"
    End If
End Sub

ユーザーフォームコード

Private Sub UserForm_Initialize()
    Set theOpBut = UserForm1.Controls.Add("Forms.optionbutton.1", "OptionButton", True)
        With theOpBut
        .Caption = "Test Button"
        '.GroupName = OpButGroupCounter
        .Top = 10
        .Left = 20
        .Height = 16
        .Width = 50
        .Font.Size = 12
        .Font.Name = "Ariel"
    End With
End Sub

Private Sub CommandButton1_Click()
    Call Fill
End Sub

方法 2

変数を宣言しBooleanてオプションボタンのクリックイベントを作成し、Booleanそのクリックイベントに変数の値を設定します。実行時にオプション ボタンのクリック イベントを作成するには、この例を参照してください。

Booleanその後、 Variableの値を確認し、Sub Fill()それに応じて処理できます。

于 2013-11-10T08:59:30.290 に答える