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

コンボボックスのインデックスが不正

このQ&Aのポイント
  • ExcelのVBAを使用して、コンボボックスを表示しています。指定した範囲内に多くのデータが保存されていれば問題ないのですが、最低限のデータしかなければ、LastRowが「2」となりエラーが表示されます。
  • 実行時エラー '381'が発生しており、Listプロパティを設定できません。プロパティの配列のインデックスが不正です。指定した範囲が「A2:A2」となるのが原因だと思われます。
  • 回避策としては、LastRow+1とすることができますが、コンボボックスの一番下に空白ができてしまうため、別の方法を検討しています。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

していることが多少分からない点があるのですが、たぶん、コントロールツールのコンボボックスだとして、List プロパティは配列を入れるためですから、 .List = 配列 で、代入式が配列になっていないからエラーになるのではありませんか? With Sheets("Sheet1").cb型式   .ListFillRange = Sheets("マスタ").Range("A2:A" & LastRow).Address End With のようにすればよいのではありませんか?

level30
質問者

お礼

ありがとうございます。 試してみましたが、「マスタ」シートの範囲ではなく、「Sheet1」シート の範囲が表示されてしまいます。 なぜでしょう?

level30
質問者

補足

下記のようにしたら、うまく動作しました。 .ListFillRange = "マスタ!A2:A" & LastRow

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

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

一応、もうこちらは読まないかもしれませんが、別の場所で、私の書き込みを読み落とされたようなので、念のために書いておきますが、 With Sheets("Sheet1").cb型式   .ListFillRange = Sheets("マスタ").Range("A2:A" & LastRow).Address End With 「cb型式」の部分を、サブルーチンで、引数に取りたい時は、 With Sheets("Sheet1").Shapes.("cb型式").DrawingObject とします。このような方法を使うか使わないかは、ご自由です。

すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

level30さん、Wendy02 です。 With Sheets("Sheet1").cb型式   .ListFillRange = Sheets("マスタ").Range("A2:A" & LastRow).Address End With >試してみましたが、「マスタ」シートの範囲ではなく、「Sheet1」シート >の範囲が表示されてしまいます。 そのとおりですね。 Sheets("マスタ").Range("A2:A" & LastRow).Address これでは、単に、Range("A2:A" & LastRow).Address のアドレスと同じことでした。 シート名が入っていませんね。 .ListFillRange  = "マスタ!" & Range("A2:A" & LastRow).Address か、 .ListFillRange = "マスタ!A2:A" & LastRow ですね。 失礼しました。

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

関連するQ&A

専門家に質問してみよう