• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ワークシートのコンボボックスのExcelVBA)

ワークシートのコンボボックスのExcelVBA

jcctairaの回答

  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.1

mimimam77さん こんにちは。 「ListIndex」は選択されたインデックス番号なので必ず数値です。 よってEmpty値はありません。 選択されていなければ「-1」になります。 以下のように変更すれば良いかと思います。 If IsEmpty(ActiveSheet.cboクライアント.ListIndex) Then         ↓ If ActiveSheet.cboクライアント.ListIndex < 0 Then

mimimam77
質問者

お礼

ありがとうございます!!jcctairaさん。 できました!!わかりやすい文章なので、理解できました!!

関連するQ&A

  • コンボボックスの記述の簡素化

    下記の記述でコンボボックスにデーターを表示するようにしたのですが 大量に記述が必要になります。 もっと簡素化できないでしょうか。 よろしくお願いします。 If Worksheets("Sheet2").Range("C3").Value = Worksheets("Sheet2").Range("C2").Value Then 品名リスト.RowSource = "Sheet2!D3:D18" ElseIf Worksheets("Sheet2").Range("C4").Value = Worksheets("Sheet2").Range("C2").Value Then 品名リスト.RowSource = "Sheet2!E3:E20" ― ― 省略 ― ― ElseIf Worksheets("Sheet2").Range("C20").Value = Worksheets("Sheet2").Range("C2").Value Then 品名リスト.RowSource = "Sheet2!U3:U20" ElseIf Worksheets("Sheet2").Range("C21").Value = Worksheets("Sheet2").Range("C2").Value Then 品名リスト.RowSource = "Sheet2!V3:V20"

  • コンボボックスのListFillRangeの変更について

    皆様、こんにちは。 いつもお世話になっております。 条件によってコンボボックスのListFillRangeを変更させたいですが、可能でしょうか? 次のように書いてみましたが、動きません。。 If Range("D2") = 1 Then ActiveSheet.Shapes("DropDown63").ListFillRange = "$C$44:$C$54" ElseIf Range("D2") = 2 Then ActiveSheet.Shapes("DropDown63").ListFillRange = "$C$55:$C$73" End If 「指定した名前のアイテムが見つかりませんでした」というメッセージが出てしまうんですが、コンボボックスの名前の書き方が間違っているでしょうか? ご存知でしたら何方か教えていただければ非常に助かります! どうぞよろしくお願いいたします。

  • VBA コンボボックスの項目入力

    お世話になります。 Excel2002のVBAにて コンボボックスへの項目の入力について 質問させて頂きます。 現在行いたい処理はB27からB56のセルに入力されている数値 のなかからB62からB91に入力されている数値と重複の無いもの をコンボボックスへ追加したいと考えております(空白セルは 追加しない)。 以下の通りではどうもうまくいかないので宜しくお願いします。 ' For i = 27 To 56 ' If Range("B" & i) <> "" Then ' ComboBox1.AddItem Range("B" & i) ' For j = 62 To 91 ' If Range("B" & j) <> "" Then ' ComboBox1.RemoveItem Range("B" & j) ' End If ' Next ' End If ' Next

  • コンボボックスの文字によるif文の作成

    エクセル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 ★部をどのようにすればうまく実行できるのでしょうか。

  • エクセルVBA 別シートからのコンボボックス連動

    エクセルVBA 別シートからのコンボボックス連動について Book1(多人数入力用ブック) ・入力シート ・データ用シート Book2(反映用ブック) ・シート1 Book1にコンボボックスが2列 テキストボックスが2列 * 6行のユーザーフォームを作成しました。 コンボボックス1 コンボボックス2 テキストボックス1 テキストボックス2 コンボボックス3 コンボボックス4 テキストボックス3 テキストボックス4 ・ ・ ・ 左のコンボボックスで「あ」が選ばれたときには、右のコンボボックスで「あ行の顧客」・・・というように連動させたいと考えております。 データ用シートのデータは、   A      B          C 1 あ あ行で始まる顧客 か行で始まる顧客 2 か 3 さ 4 た 5 な 6 Private Sub UserForm_Initialize() Dim c As Range ComboBox1.RowSource = "データ用シート!A1:A9" End Sub Private Sub ComboBox1_Change() 'Dim Rng As Range 'Dim i As Long i = ComboBox1.ListIndex If i > -1 Then Dim c As Range Set Sh = Worksheets("データ用シート") Set Rng = Worksheets("データ用シート").Range("B2:I30") ComboBox2.Value = "" ComboBox2.RowSource = Rng.Columns(i + 1).Address End If End Sub 上記コードですと、コンボボックス2が入力シートのデータを表示してしまいうまくいきません。 欲をいえば、 Book1(多人数入力用ブック)入力シートの特定セルに コンボボックス2・テキストボックス1 コンボボックス4・テキストボックス3というように続けて1セルに反映 Book2(反映用ブック)シート1に コンボボックス2・テキストボックス1・テキストボックス2 を各1セル 1行に反映させたいと考えております。 まったく知識がないのですが 仕事上どうしても必要となったので、各種サイトを見よう見真似でやっております。 ご助力いただければ幸いです。

  • セル結合のコンボボックスの選択方法

    エクセル2003を使用しています。 2シートのブックを使用しており、 シート1:売上一覧(コンボボックスでシート2から品名を選択) シート2:品名と価格の表       A1     B1  品名 いちご    50円      ばなな   100円        ・     ・ となっています。 シート1のコンボボックスで いちごを選択したら、 いちごの隣のセルに価格を自動入力させたいと思っています。 シート1のコンボボックスは、20個あり、 コンボボックス1は、A1A2B1B2セルを結合して 結合セル一杯にコンボボックスを1つ作成しています。 どのようにしたらいいでしょうか? VLOOKUP関数を教えていただきましたが、 よろしくお願いいたします。

  • VBA コンボボックス

    VBAコンボボックスで AAAを選択→処理A BBBを選択→処理B CCCを選択→処理C としている場合、 AAAを選択→処理Aの後、コンボボックスで再度AAAをクリックしても次の処理Aにいきません。いったんBBBをクリックしてしてAAAをクリックすると処理Aに行きますが、連続AAAをクリックして処理Aはできないでしょうか。 何か方法はありませんか? Private Sub ComboBox1_Change() If ComboBox1.Value = "AAA" Then   ’処理Aへ ElseIf ComboBox1.Value = "BBB" Then   ’処理Bへ Else   ’処理Cへ End If End Sub

  • VBA コンボボックスの条件分岐

    コンボボックスの条件分岐のコードが間違っているみたいで 調べても分からなかったので質問します。 やりたいこと 『マスタ』という名前のシート内のセルを参照し マスタシートには C2セル『A』C3セル『B』C4セル『C』と それぞれアルファベットがあります。 そこでコンボボックスを使用し コンボボックス22にC2~C4セルを選択できるようにし 例えばC2セルを選択したら コンボボックス21の参照範囲をマスタシート内の D2~D13セルを選択できるようにし C3セルを選択したら コンボボックス21の参照範囲をマスタシート内の E2~E13セルを選択できるようにしたいのです。 すいませんがコードを記載して頂けますと 助かります。 Private Sub UserForm_Activate() '----------------------- With ComboBox22 .ColumnCount = 2 .ColumnWidths = "90;10" .RowSource = "マスタ!C2:C4" End With '↑こうすればコンボボックス22のマスタシートのC2からC4まで値を選択できるようになります。 '------------------------わかりやすく区切っています。 '--------------------------------------- If UserForm1.ComboBox22 = "A" Then With ComboBox21 .ColumnCount = 2 .ColumnWidths = "90;10" .RowSource = "マスタ!D2:D13" End With End If '↑コンボボックス22の値が(C2セルの値がAなら)コンボボックス21をマスタシートのD2からD13までを選択できるようにしたい If UserForm1.ComboBox22 = "B" Then With ComboBox21 .ColumnCount = 2 .ColumnWidths = "90;10" .RowSource = "マスタ!E2:E13" End With End If '↑コンボボックス22の値が(C3セルの値がBなら)コンボボックス21をマスタシートのE2からE13までを選択できるようにしたい '----------------------------------------区切っています。 End Sub

  • コンボボックスの値を参照する

    こちらVBA初心者です。宜しくお願い致します。 A:Aを"出身地"、 B:Bを"データ"という名前で定義しており、 D1~D3を"選択"という名前で定義しています。 入力内容はこうです。 D1・・・空白 D2・・・出身地 D3・・・データ そしてA列とB列の最初にある空白セルを見つける為に、 Range("出身地").Select Selection.End(xlDown).Offset(1, 0).Select もしくは、 Range("データ").Select Selection.End(xlDown).Offset(1, 0).Select で可能だと言う事がわかりました。 そして、それをユーザーフォームでコンボボックス内のRowSouceに選択と入力して、 コンボボックスでどちらかを選び、ボタンを押して実行。と、したいのですがここから先がうまくいきません。 VBAに関するサイトは多く、様々な場所で勉強させていただきましたがどうにも理解出来ませんでした。 どうか、お助け下さい。

  • Excel VBA 空白セルをチェックする方法

    こんばんは ある選択範囲でどれか1つのセルに空白があった場合 メッセージを表示させたいのですが、 リスト中に入力された範囲のすべてのセルをチェックしたいのです。 どのようにしたら良いのでしょうか。 A1~A3の範囲のみでしたら下記でよいのかな?と考えてみました。 VBA勉強中なのですが、なかなかうまくいきません。お力をお願い致します。 If IsEmpty(Range("a2:d2").Value) Then MsgBox "開始時刻が入力されていません。" Worksheets("Sheet1").Range("a2").Select