MW211 EXIT

devlog
ExcelVBA/コンボボックスの表示と値を別にする方法
2018年06月20日
┌─┬────┐
│ 1│織田信長│
├─┼────┤
│ 2│豊臣秀吉│
├─┼────┤
│ 3│徳川家康│
└─┴────┘
上記のようなテーブルを用意し、コンボボックス(プルダウンメニュー)を生成するが
画面上は右列(名前)だけしか表示せず、処理的には左列(ID)を扱いたい場合の設定方法。

プロパティを以下のように設定する。
  ┌──────────┬───────┬───┬─────────────┐
  │ComboBoxのプロパティ│ListFillRange │A1:B3 │リストの実体              │
  │                    ├───────┼───┼─────────────┤
  │                    │ColumnCount   │2     │2列有効                   │
  │                    ├───────┼───┼─────────────┤
  │                    │BoundColumn   │1     │(.Valueで)1列目の値を取得 │
  │                    ├───────┼───┼─────────────┤
  │                    │TextColumn    │2     │選択時に2列目の値を表示   │
  │                    ├───────┼───┼─────────────┤
  │                    │ListWidth     │0 pt  │1列目を非表示に           │
  └──────────┴───────┴───┴─────────────┘
そして、処理にて以下のように参照する。
    値を「ComboBox.Value」で取得
    (「ComboBox.List(ComboBox.ListIndex, 0)」でも取得可)
分類:ExcelVBA