Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1310 / 13644 ツリー ←次へ | 前へ→

【75145】ComboBoxをクリック後、2列表示したい Excel2002使用者 13/12/20(金) 13:09 質問[未読]
【75146】Re:ComboBoxをクリック後、2列表示したい γ 13/12/20(金) 20:32 発言[未読]
【75148】Re:ComboBoxをクリック後、2列表示したい Excel2002使用者 13/12/21(土) 0:44 お礼[未読]
【75159】Re:ComboBoxをクリック後、2列表示したい Excel2002使用者 13/12/22(日) 23:53 発言[未読]

【75145】ComboBoxをクリック後、2列表示したい
質問  Excel2002使用者  - 13/12/20(金) 13:09 -

引用なし
パスワード
   ヘルプでComboBoxについて調べたのですが、分からなかったので質問します。

下記コードでは、ComboBoxをクリック後、ComboBoxには1列目の値しか表示しません。
2 列表示したいのですが、方法が分かりません。よろしくお願いします。

Private Sub UserForm_Initialize()
Dim i As Long, End列 As Long
Dim v As Variant

    End列 = .Cells(4, 256).End(xlToLeft).Column  'データEnd列
    v = .Range("A4", .Cells(.Rows.Count, 2).End(xlUp)).Value
  
  With Me.ComboBox1
    .ColumnCount = 2    'ComboBoxは 2列表示
    .ListRows = 40     'ComboBoxの表示行数40
    .ColumnWidths = "55;60"
    .List() = v       'combobox1に2列分のデータをセット
    .ListIndex = 0
  End With
End Sub

【75146】Re:ComboBoxをクリック後、2列表示したい
発言  γ  - 13/12/20(金) 20:32 -

引用なし
パスワード
   選択したときには一列しか表示しないのが仕様のようです。
そのとき何列目を表示するかを指示するのが、
BoundColumnプロパティです。

どうしてもということなら、ListBoxに変更するという手も
あるかもしれませんね。

ちなみに、アップされたコードはエラーになりますよ。
実際に動いているものを示してもらいたいですね。

【75148】Re:ComboBoxをクリック後、2列表示したい
お礼  Excel2002使用者  - 13/12/21(土) 0:44 -

引用なし
パスワード
   γ さん 回答ありがとうございます。

>ちなみに、アップされたコードはエラーになりますよ。
>実際に動いているものを示してもらいたいですね。

関係ないところは冗長になるので省略しましたが、削除の仕方にミスがありました。失礼しました。

先にアップした

>    End列 = .Cells(4, 256).End(xlToLeft).Column  'データEnd列
>    v = .Range("A4", .Cells(.Rows.Count, 2).End(xlUp)).Value
の所は


  With Sheets("Sheet1")
    v = .Range("A4", .Cells(.Rows.Count, 2).End(xlUp)).Value
  End With
でした。


>選択したときには一列しか表示しないのが仕様のようです。

2列表示するためのプロパティーがあればと思って質問しました。ないみたいですね。

あきらめます。
ありがとうございました。

【75159】Re:ComboBoxをクリック後、2列表示したい
発言  Excel2002使用者  - 13/12/22(日) 23:53 -

引用なし
パスワード
   ヘルプをよく見ていると、自己解決できました。

.ComboBox の Text プロパティを使えば、下記コードで2列表示ができました。

Private Sub ComboBox1_Change()
Dim idx As Long
  idx = Me.ComboBox1.ListIndex
  If idx < 0 Then Exit Sub
  With Me.ComboBox1
    .Text = .List(idx, 0) & " " & .List(idx, 1)
  End With
End Sub

1310 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free