2016-08-03 8 views
0

私はJava、またはC#のように似ています。 Range(1、A).Valueが変更された場合、Range(1、B)のようなメソッドが発生します.ValueはRange(1、A).Valueとなります。 私はVBAがWorksheet_Changeメソッドを持っていることを知っていますが、私はComboBoxを使用しています。そして、私がComboboxから値を選択すると、変更は行われませんでした。VBAで「リスナーを変更する」ことはできますか?

ActiveXコントロールではなく、フォームコントロールを使用しています。

+1

使用しているコンボボックスの種類によって異なります:フォームコントロールを使用している場合、このコントロールの変更イベントはありません。ファイルのどこかにコンボボックスの現在の値を記録する必要があります。 ActiveXコントロールを使用している場合、 'Private Sub ComboBox1_Change()'(コンボボックスの名前が 'ComboBox1'の場合)というイベントハンドラがあります。 – Ralph

+0

@Comintern上記のように、コメントはOPがActiveXコンポーネントを使用する場合にのみ適用されます。さもなければ、あなたのアプローチは実行可能ではありません。 – Ralph

+1

@Cominternはい、コントロールのコンボボックスにマクロを割り当てることができます。しかし、フォームコントロールには 'click'イベントしかありません。あなたのコメントは 'DropDown1_Change'で示されているように、フォームコントロール用の変更イベントハンドラは**ありません**です。クリックイベントは、**ドロップダウンボックスがクリックされるたびに**変更されます(値が変更されたかどうかは関係ありません)。それはOPが望んでいるものではありません。したがって、あなたのソリューションはActiveXコントロール(上記のように)に対してのみ機能します。多分それを自分で試してみるべきでしょうか? – Ralph

答えて

1

右のそれは "BOOK1!DropDown1_Change" のようなものがデフォルトになります

enter image description here

...コンボボックスをクリックし、マクロの登録を選択します。 [新規]ボタンをクリックします。

enter image description here

それはすなわち、イベントハンドラのスタブコードを生成します。:

Sub DropDown1_Change() 
    'Put your event handler here. 
End Sub 

代わりに、既存のマクロを割り当てることができます。

+0

お返事ありがとうございました!それは働いている! – Pisti

+0

どのような種類のイベントがドロップダウンですか? – Pisti

+0

@Pisti - 残念ながら、フォームコントロールは上記の方法で割り当てることができるイベントを1つだけ取得します。 ActiveXコントロールには多くの機能があります。 – Comintern

関連する問題