3

Excel 2003 を実行しています。次の VBA コードがあります。これは、単純なコントロールとコントロールでUserForm構成されています。の保存を通じて機能しますが、 の保存時にタイプの不一致エラーが発生します。ComboBoxLabelComboBoxLabel

Private whatComboBox As ComboBox
Private whatLabel As Label

Private Sub UserForm_Initialize()
    Call SaveComboBox(SomeComboBox)
    Call SaveLabel(SomeLabel)
End Sub

Private Sub SaveComboBox(aComboBox As ComboBox)
    Set whatComboBox = aComboBox
End Sub

Private Sub SaveLabel(aLabel As Label)
    Set whatLabel = aLabel
End Sub

[そして、VBA が他のほとんどの言語に比べて制限されていることを高く評価しています。しかし、これが間違っているとは思わなかったでしょう。]

皆さんありがとう!

4

1 に答える 1

3

これを試して

Private whatComboBox As msforms.ComboBox
Private whatLabel As msforms.Label

Private Sub UserForm_Initialize()
    Call SaveComboBox(SomeComboBox)
    Call SaveLabel(SomeLabel)
End Sub

Private Sub SaveComboBox(aComboBox As msforms.ComboBox)
    Set whatComboBox = aComboBox
End Sub

Private Sub SaveLabel(aLabel As msforms.Label)
    Set whatLabel = aLabel
End Sub

お問い合わせについて

ComboBox を保存することで機能しますが、ラベルを保存するときにタイプの不一致エラーが発生します。

Excel には Label という名前のオブジェクトもあるため、Label オブジェクトを修飾する必要があります。

Private whatComboBox As Control
Private whatLabel As Control

Private Sub UserForm_Initialize()
    Call SaveComboBox(SomeComboBox)
    Call SaveLabel(SomeLabel)
End Sub

Private Sub SaveComboBox(aComboBox As Control)
    Set whatComboBox = aComboBox
End Sub

Private Sub SaveLabel(aLabel As Control)
    Set whatLabel = aLabel
End Sub
于 2012-08-26T20:31:05.673 に答える