• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2010、ドロップダウンリストの問題)

Excel2010のドロップダウンリストの問題

このQ&Aのポイント
  • Excel2010のドロップダウンリストについて、元のリストが編集できず困っている。
  • 校閲→入力規則で設定する画面で、入力値の種類をリストに設定しているが、元の値が空欄になっている。
  • ドロップダウンのセルは使えてリストが正しく表示されるが、セルをクリックするとリンクが表示され、編集ができない。

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

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

参考にしてください。 ーー 例えばの話ですが、 VBEの標準モジュールに Sub test07() Worksheets("Sheet1").Range("A1:A10").Select With Selection.Cells.Validation .Delete .Add _ Type:=xlValidateList, _ Formula1:="東京, 大阪, 名古屋" End With End Sub と張り付けて実行すると、A1:A10セルの横に▼が出て(そのセルをクリックしたときだけ)、東京, 大阪, 名古屋のいずれかを選べます。 特徴は、複数セルに一括で設定できることです。 またシートのどこを探しても、東京, 大阪, 名古屋の文字列は見つかりません。 VBAのコードの中に定義されてます。 一方、入力規則は、VBAユーザー以外を念頭に、シートに選択データを入力しておき、このセルデータを使う仕組みです。 ーー シートにActiveXのコンボボックスを手動で貼り付けて(Combobox1) 標準モジュールに Sub test09() Worksheets("Sheet1").ComboBox1.Style = fmStyleDropDownCombo 'リストに無い値を入力できます。 'ComboBox1.ListFillRange = "" '参照リストのセル範囲を一時的に無効します。 Worksheets("Sheet1").ComboBox1.Clear 'リスト内容を初期化します。 With Worksheets("Sheet1").ComboBox1 .AddItem ("東京") .AddItem ("青森") .AddItem ("仙台") End With Worksheets("Sheet1").ComboBox1.ListIndex = -1 'コンボボックを入力されていない状態で表示させます。 End Sub を入れて、 シート1のイベントプロシージュアーに Private Sub ComboBox1_Change() Range("D2") = ComboBox1.Value End Sub を入れておくと、コンボで選んだ値がD2にセットされます。 これらは選択肢はプログラムの中に定義されます。見る人が見ればどれかわかります。 === 一般論としては、ユーザーのプログラムで選択項目を設定していると思われます。 VBAの経験があればどれかわかるでしょうが、コードを見れる立場でないと どれを使っているかの判別はむつかしいでしょう。 かって、システムを受託した先に頼むほかないのでは?

spongetak
質問者

お礼

ありがとうございます。 そのようなことがVBAで設定可能であるということが、分かり、またその可能性が十分あるということが分かり、大変参考になりました。

spongetak
質問者

補足

その場合、ファイル自体がマクロの拡張子のファイルになっているのでしょうか。

関連するQ&A