2012-01-31 4 views
1

コンボボックスの選択値を取得するにはどうすればよいですか?vbaを使用して選択したアクティブxコンボボックスの値を取得します

私は、値が "Corporate"と "Consumer"のコンボボックスを持っています。

インデックスではなく、選択した値を取得して文字列に格納したいと考えています。

このような何か:

string a = combobox.value; 

( - >コンシューマ)

+0

あなたからこれをやっていますC#? –

+0

@SiddharthRout、彼は彼がVBAからこの記述をしていると言いました。 –

+0

はい、彼はやった:)しかしコードの上のコードはC#;) –

答えて

1

ValueありがとうVBAで大文字の "V" を持っていますが、comboboxと仮定するとコンボボックスの名前です。画面上に作成したコードを使用します(ただし、代入文が間違っていることを除けば、以下を参照)。 ComboBoxの名前がわからない場合は、ComboBox1です。確認するには、VBAプロパティウィンドウのNameプロパティを確認します。

このお試しください:

Dim ws as Worksheet 
Dim cboCorpConsumer as ComboBox 
Dim a as String 

Set ws = Worksheets("YourWorksheetName") 
Set cboCorpConsumer = ws.OLEObjects("cboNameFromActiveXProperties").Object 

a = cboCorpConsumer.Value 

または1行に:あなたのコンボボックスは、あなたがこれを使用することができますスプレッドシートに埋め込まれている場合

Dim a as String 

a = combobox.Value 
+0

それは仕事をしなかった。コンボボックスの名前は "CBSegmento"に設定されています。 文字列として 薄暗いワンセグ ワンセグ= CBSegmento.Value エラー: ランタイムerror'424' : オブジェクトコードが存在するん – Raphael

+0

が必要? ComboBoxはユーザーフォーム上か、スプレッドシート上のどこかで直接ですか? –

5

a = Worksheets("YourWorksheetName").OLEObjects("cboNameFromActiveXProperties").Object.Value 
+0

これは正解です。しかし、私はコンボボックスの名前でちょっと混乱していました(それはcboNameで、それに標準サフィックスを追加していますか?)。この答えは、コンボボックスの名前が "cboNameFromActiveXProperties"であることを前提としています。同様に、コンボボックスの名前が "ComboBox1"の場合は、次の構文を使用します: 'a = Worksheets(" YourWorksheetName ")。OLEObjects(" ComboBox1 ")。 ' – GlennFromIowa

関連する問題