初めて自分の家と他人の家が違う、と意識した時

エクセルVBAで聞きたい事があります。
コンボボックスで選択された文字により動作を変えたいのですが
どのような表現にすればいいでしょうか?
ちなみに今下のような文章をうっているのですがうまく機動してません。

Sub sf(a As Integer, b As Integer)
If "ComboBox" & a = "はい" Then★
'
'
Range("E1").select←ここの内容は関係ないです。  
ElseIf "ComboBox" & a = "いいえ" Then★
'
'
Range("E3").select←ここの内容は関係ないです。
 End If

★部をどのようにすればうまく実行できるのでしょうか。

A 回答 (2件)

フォーム上に作成されたコンボボックスが前提になります。



If Controls("ComboBox" & a) = "はい" Then
    • good
    • 0

コンボボックスの選択アイテムはいつっでも変えられます。

ですからどの時点の状態を取ってほしいのか、人間が知らせます。
普通はそれはクリックイベントです。
Private Sub CommandButton1_Click()
MsgBox ComboBox1.Text
MsgBox ComboBox2.Text
MsgBox ComboBox3.Text
End Sub
上記はコントロールツールボックスの方の、コンボボックスをシートに3つ貼り付け、コマンドボタンを貼り付けた例。
ーー
初心者だからか知って知らずか、そのこと(イベント)から質問を始めていないのは知らないのでしょう。コントロールの利用の基本です。
ーー
上記で私が「状態」といったのは、コントロールの(プロパティの)Textだったり、Valueだったりします。質問者は略していて、それでも良い場合(既定値が決まっている場合)が多いが、習い初めはきっちり書くべきです。
ーー
それと、ComboBox" & a の(ような)書き方は出来る場合と出来ない場合がありますので、十分勉強してから使うこと。一般の変数名とは
違うと思ったほうが良い。オブジェクト名ですから。
この辺の変化をさせてオブジェクトを次々変化させてコードの経済化を図りたい場合は、できるかどうかやってみて、出来ない場合は別に質問すること。
ーー
(1)またフォームにコンボを貼り付けるか
(2)シート上か
(A)フォームか(B)コントロールツールボックスのコンボか書いてないのは
そういう意識が足りないことを示します。微妙に・大幅に違うかもしれません。
ーー
複数のコントロールを扱っている例
http://www.moug.net/tech/exvba/0040034.htm
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A