• ベストアンサー

VBA コンボボックス項目追加?

エクセル VBA コンボボックスの項目入荷についてですが 入力フォームを開いたときに Private Sub UserForm_Activate() ComboBox1.AddItem ("本社") ComboBox1.AddItem ("東京支社") ComboBox1.AddItem ("大阪支社") End sub のようにコンボボックスに項目をだすことはわかったのですが、 フォームをを開いたときにワークシートを全てを自動で 項目に表示する方法はありますでしょうか? 宜しくお願いいたします。

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

  • ベストアンサー
  • kigoshi
  • ベストアンサー率46% (120/260)
回答No.2

ご質問の意味が何とおりかに取れますが、全シート名を追加したい というのであれば以下のコードをお試し下さい。 Private Sub UserForm_Activate() ComboBox1.Clear Dim shIdx As Integer For shIdx = 1 To ActiveWorkbook.Sheets.Count ComboBox1.AddItem ActiveWorkbook.Sheets(shIdx).Name, shIdx - 1 Next ComboBox1.ListIndex = 0 End Sub

77TAKETAKA
質問者

お礼

説明が不十分ですみません。 上記のコードでやろうとしていたことが出来ました。 スキルの問題もありますが次回よりもう少し 適切な内容の質問方法ができるようがんばります。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

>ワークシートを全てを自動で (1)これを素直に読むと、ある1つ(と思うが)のシートの Range(A!:X100)などのセル範囲(これだってシートの1部だが)を コンボボックスに表示すると、受け取れる。 コンボの行数列数制限内では可能です。 しかし普通はこんなことはしないでしょう。 しかし複数セル(2,3列、数百行以内か。独断で)の情報をアイテムに加えることは、プログラムで繰り返しを使うから数行で可能です。 (2)既出回答のシート名のことなら、質問が致命的に不備です。早く補足で訂正のこと。 ーーー もっと全体的に何をしたいか書いて、質問したほうが良い。 コンボの利用という点さえ、別にこれを使わない方法があるかもしれない。 ーー 質問者の力量は不明だが、過去質問の例で、自分が最近習得した機能に飛びついて、初心者はそれを使って、何でもやろうとする傾向が見られる。機能には使う場面で、適不適があるものが多い。 その時点では、それしか出来ないから仕方ないのだが。 折角数万の読者に読んでもらう良い機会なのだから、スマートな・適当なやり方は無いか聞くのが得策と思う。

77TAKETAKA
質問者

お礼

質問内容の不備にてお手数をかけてすみません。 既出回答のシート名のことです。 質問方法にも色々ありますのでセンスよく出来るように がんばります。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

ワークシート名の一覧ということでしょうか? 特定のシートの内容を全てということでしょうか?

77TAKETAKA
質問者

お礼

質問があいまいな内容ですみません。 適切な内容の質問ができるようがんばります。

関連するQ&A

専門家に質問してみよう