• ベストアンサー

リストから値を取得する時

コンボボックスなどで値(a)をとる時、 ・combobox.list = ・combobox.listindex = ・combobox.text = "a" これらの違いがわからないのですがどのように使いわけるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#79209
noname#79209
回答No.2

もし、ご質問の意味が表題の通りで、コンボボックスで選択した値が「a」であるかどうか調べたいなら、 コンボボックス名が「cmbBOX」として、cmbBOXの「AfterUpdate」イベントに If cmbBOX = "a" then などと記述すればよいのでは?

DINO-PIE
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

これらは取得と言うか、すべて代入ですね。 ・combobox.list = は用意しておいた配列等をコンボボックスに一気に代入するような場合 (▼を押した際に表示されるリストを一気に代入する) ・combobox.listindex = は▼を押した際に表示されるリストの何番目を選択した状態にするかを指定する ・combobox.text = "a" はコンボボックスのテキスト入力部分に値を代入 (▼を押した際に表示されるリストに代入した値 "a" がある場合は combobox.listindex = を指定したのと同様の動き) VBは持ってないのでExcelのVBAの例です。 UserForm に CommandButton を1つとComboBoxを1つ置き、UserFormのモジュールに下記をコピペ Private Sub UserForm_Initialize() Dim myList   myList = Array("a", "b", "c")   Me.ComboBox1.List = myList   Me.ComboBox1.Text = "d" End Sub Private Sub CommandButton1_Click()   '0から数えて2番目を表示   Me.ComboBox1.ListIndex = 2 End Sub 実行するとComboBoxに a,b,c のリストが作成されて、d が入力された状態で表示 CommandButtonを押下すると c が表示される

DINO-PIE
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • テキストボックスのデフォルト設定とコンボボックスの更新について

    テキストボックスのデフォルト設定とコンボボックスの更新について エクセルのVBAで、ユーザーフォームを使用しています。 ユーザーフォームの中にはコンボボックスとテキストボックスとボタンがあります。 コンボボックスには「ABCDEFGHIJKLM」と合計13のリストがあります。 ユーザーフォーム起動時に、コンボボックスには最初のリスト(A)が表示 されていて、「次へ」ボタンと「戻る」ボタンの2つを用意しています。 (1)ユーザーフォーム起動時にテキストボックスに「0」を入れる方法を教えていただけないでしょうか。 コンボボックスで「A」が選択された状態で「次へ」ボタンをおしたら「B」が選ばれる。 「D」が選択された状態で「次へ」ボタンをおしたら「E」が選ばれる。 「M」が選択された状態で「次へ」ボタンをおしたら「A」が選択される。(リストの最初に戻る。) というのは、次のVBAで上手くいきました。 If Combobox1.ListIndex < Combobox1.ListCount - 1 Then Combobox1.Text = Combobox1.List(Combobox1.ListIndex + 1) Else Combobox1.Text = Combobox1.List(0) End If (2)しかし「E」が選択された状態で「戻る」ボタンをおしたら「D」が選ばれる。 「G」が選択された状態で「戻る」ボタンをおしたら「F」が選ばれる。 「A」が選択された状態で「戻る」ボタンをおしたら「M」が選ばれる。(リストの最後に戻る。) といった内容のマクロがうまく組めません。 教えていただけると助かります。

  • EXCEL VBA コンボボックスでのLISTINDEXの値

    初めて質問させていただきます。 EXCEL VBAでコンボボックスを設定したときのLISTINDEXの値についてですが、 コンボボックスがフォーム内に3つ(ComboBox1,2,3)あり、次のようなコードの入力を行い、 ComboBox1 Sub Userform_Intialize()  With CcomboBox1   AddItem"AAA" '・・・ここの値は0ですね   AddItem"BBB" '・・・ここの値は1ですね  End With End Sub sub ComboBox1_Change()  Me.combobox2.Clear  Select Case Me.ComboBox1.ListIndex   Case 0   Me.ComboBox2.AddItem "2AAA" '・・・ここの値は0ですね    Me.ComboBox2.AddItem "2BBB" '・・・ここの値は1ですね   Case 1   Me.ComboBox2.AddItem "2CCC" '・・・ここの値は何になりますか?   Me.ComboBox2.AddItem "2DDD" '・・・ここの値は何になりますか?  End Select End Sub このcombobox2の4つの項目から、 更にcombobox3の選択項目に分岐するように設定したいのです。 わかりやすいように、ComboBox3もComboBox2のように作成したいのですが、 このように入力した場合、ComboBox2で"2CCC"を選択した場合、 ListIndexの値が2ではないようなのです。 この"2CCC"と"2DDD"のListIndex値はいくつになるのでしょうか? どなたか教えて下さい。

  • VBA コンボボックスで選んだ値を取得するには

    ユーザーフォーム上のコンボボックスから値を選択し、その値を変数として使いたいのですが、うまくいきません。 コンボボックスのコードで Private Sub ComboBox1_Change() moji1 = ComboBox1.Text Range("A1").Value = moji1 のようにすれば、コンボボックスから値を選んだ時点でA1セルにその値をコピーできるのですが、同じユーザーフォーム上にあるコマンドボタンをクリックして実行する「マクロ1」にてこのmoji1という変数を使いたいのです。 マクロ1にて、上記と同じ Range("A1").Value = moji1 というコードを記述しても、ユーザーフォームで選択した値が消えており、empty値となってしまいます。 原因をご存知の方はお教えください。

  • 【エクセル】オプションボタンにセルの値を反映させるには

    エクセルマクロ初心者です。教えてください。 シート2 の あるセルの値が A のとき シート1上の オプションボタン1がtrueになる。 シート2 の あるセルの値が A以外のとき シート1上の オプションボタン1がfalseになる。 (オプションボタン1はフォームコントロールのオプションボタンです。) という結果になるマクロの登録方法を模索していますがうまくいきません。 実際には、シート1は入力シートで、ボタンクリックで別の蓄積シートに転記(オプションボタンのほかコンボボックスなどの内容を転記します)。シート1上のリストボックスに蓄積シートの内容を表示し、選択するとその内容を呼び出すようにしたいのです。 コンボボックスやテキストボックスに呼び出すところまではなんとか本を見たりしてできたのですが、オプションボタンに呼び出せません。 なんとかお知恵をお借りしたいです。 よろしくおねがいします。 *下記のようにやってみました。 Private Sub commandbutton3_click() Dim n As Integer n = ListBox1.ListIndex If n = -1 Then MsgBox "選択してください" Else ComboBox2.Value = ListBox1.List(n, 0) ComboBox3.Value = ListBox1.List(n, 3) ComboBox4.Value = ListBox1.List(n, 4) ComboBox5.Value = ListBox1.List(n, 8) ComboBox6.Value = ListBox1.List(n, 9) ComboBox7.Value = ListBox1.List(n, 1) ComboBox8.Value = ListBox1.List(n, 2) TextBox3.Value = ListBox1.List(n, 10) End if ***********ここからがうまくいきません******** If Worksheets("入力シート").ListBox1.List(n, 6).Value = "A" Then OptionButton1.Value = True Else OptionButton("A").Value = False End If End Sub

  • Excel:コンボボックスの値をセルにセットする場合

    Excel2000を使っています。 コンボボックスで選択した内容をアクティブなセルに入力するために、以下のようなコードを作成しました。 (ユーザフォームにコンボボックスを1つ作成しています) ------------------------------------------ Private Sub UserForm_Initialize() ComboBox1.ColumnCount = 2 For I = 0 To 10 ComboBox1.AddItem Worksheets("元ネタ").Cells(I + 2,1).Value ComboBox1.List(I, 1) = Worksheets("元ネタ").Cells(I + 2,2).Value Next End Sub ------------------------------------------ Private Sub ComboBox1_Change() Worksheets("入力用").Activate ActiveCell.Value = ComboBox1.Text End Sub ------------------------------------------ このコンボボックスは、2列を表示させています。最後にセルに値を入力すると、今のコードでは1列目の値が入りますが、実際には2列目の値だけを入れたいんです。でもコンボボックスの選択時は、先頭列に1列目の値を表示させたいんです。 どうすれば、2列目の値をアクティブセルに入力できるでしょうか?

  • Excel コンボボックス2つ以上の時のコード

    ユーザーフォームでコンボボックスを2つ作ったのですが、1つだけのときはうまくいったのですが、二つ目をつくったら、エラーが出てしまいました。 コード入力は、Initializeに入力してあります。 Private Sub UserForm_Initialize() ComboBox1.Style = fmStyleDropDownCombo ComboBox1.RowSource = "sheet1!F2:F7" ComboBox1.ListIndex = -1 End Sub Private Sub UserForm_Initialize() ComboBox2.Style = fmStyleDropDownCombo ComboBox2.RowSource = "sheet2!B2:B3" ComboBox2.ListIndex = -1 End Sub コンボボックス1だけはうまくいったのですが、コンボボックス2をつくったら名前が適切でありませんとエラーがでました。 どのようにしたらいいですか?教えてください。

  • コンボボックスの値が消えてしまいます。

    コンボボックスの値が消えてしまいます。 フォーム(1)にコンボボックスA(値集合ソースはテーブル1)があります、この リスト外入力時で別フォーム(2)(レコード追加用)を開きテーブル1にレコードを追加、 フォーム(2)を閉じる時にコンボボックスAをリクエリかけてフォーム(1)に戻るとコンボボックスAが空になっているのでリストを開き選択し直さなければいけません! フォーム(1)に戻った時コンボボックスAに入力した値を選択させておくにはどの様にすれば良いか アドバイスよろしくお願いいたします。 WIN XP ACCESS 2003で作成しています。

  • Excel ユーザーフォームでコンボボックスを使用してデータ入力

    Excelのユーザーフォームでコンボボックスを使用して、シートのデータを表示しています。 コンボボックス:ComboBox1 テキストボックス1-3:TextBox1-3 コンボボックスのRowSource:シート名!A2:C100 コンボボックスの変更時の動作: Me!TextBox1.Value = ComboBox1.Value とここまではできたんですが、テキストボックス2にシートのB列の値を、テキストボックス3にシートのC列の値を入れたいのですが、 どのようにしたらいいのでしょうか?

  • フォームでコンボボックスの1列目以外を表示するには

    フォームでコンボボックスを設置して 左から順に「CD」、「部門」、「名称」と3つに分けて表示した状態で 選ぶと1つ目のCDの値がセットされます。 これをCDではなく、部門又は名称を表示するにはどの様にしたらよいのでしょうか? チェンジのイベントに ComboBox1.List(ComboBox1.ListIndex,2)と書いて 行くかと思ったんですが、中でループしてしまいます。 宜しければ教えて下さい。

  • 同じコンボボックス、リストボックスを使うには?

    よろしくお願いします。 今、ユーザーフォームを使って製造計画表を作っています。 コンボボックスで会社名、リストボックスで会社ごとの製品名を選択させるとこまで出来ました。 1日に3つの製品を作ることが出来るので、同じ中身のコンボボックス、リストボックスを使って3つ作りたいと思っています。 ユーザーフォームの形的にはこのような感じですが。 1. コンボボックス  リストボックス 2. コンボボックス  リストボックス 3. コンボボックス  リストボックス 今は、1.のとこだけは出来たのですが、2.3.は1.と同じコードをコピーして必要と思われるとこだけをコンボボックス2と変えたりしてみたのですが、上手くいきませんでした。こんなコードですが。 Private Sub UserForm_initialize() 'ComboBox1セット Dim ico As Long ico = 1 With ThisWorkbook.Worksheets("Sheet1") Do While .Cells(1, ico) <> "" Me.ComboBox1.AddItem .Cells(1, ico).Value ico = ico + 1 Loop End With Me.ComboBox1.SetFocus End Sub Private Sub ComboBox1_Change() 'ListBox1セット Dim ico As Long 'Me.ListBox1.Clear ico = Me.ComboBox1.ListIndex + 1 With ThisWorkbook.Worksheets("Sheet1") Me.ListBox1.List = .Range(.Cells(2, ico), _ .Cells(.Cells(Rows.Count, ico).End(xlUp).Row, ico)).Value End With End Sub VBAも初めたばかりで質問の内容もわかりづらいとも思いますが、よろしくお願いします。

夫婦の言い争い、どうすれば?
このQ&Aのポイント
  • 夫婦の言い争いについての悩みを解決する方法について考えてみましょう。
  • 夫婦の意見の食い違いや不満を上手に調整するためには、コミュニケーションが重要です。
  • 相手の意見に耳を傾け、互いの意見を尊重し合うことが大切です。
回答を見る