• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL VBA リストボックスの表示について)

Excel VBA リストボックス表示について

このQ&Aのポイント
  • Excel VBAのリストボックス表示について、横表示にしたいという要望があります。
  • 現在、作成したコードではリストボックスの結果表示が上下になってしまっています。
  • リストボックスのColunmWidthsで指定したとおりの間隔で、横表示に結果を表示させたいと考えています。

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

  • ベストアンサー
noname#144013
noname#144013
回答No.1

こんにちは。 今回のご質問は下記↓のご質問、 http://qanda.rakuten.ne.jp/qa6197334.html と関連したものだと思いますので、それも踏まえてコメントさせて頂きます。 ※的外れな内容でしたらすみません。 リストボックスにリストデータを登録する際ですが、リスト1行に対して登録できる 項目は1項目だけではなく、ColumnCountプロパティにより列数の指定を行えば、 1行に複数列の項目を登録できるようになっています。 その際、1行の表示は複数データ(複数列)が横並びで表示されます。 また、ColumnWidthsプロパティによる列幅設定で、列幅の変更及び列の非表示 (列幅を0にすると非表示になります)も可能です。 リストボックスへの複数列のデータの登録(追加)の際は、   1列目は、AddItemメソッド   2列目以降は、Listプロパティ (行位置、列位置を指定) で登録できます。 リストボックスからのデータ取得は、   Listプロパティ (行位置、列位置を指定) で取得できます。   <リストの複数列の登録イメージ>         1列目     2列目   ・・・・・・・   1行目: 項目1-1  項目1-2  ・・・・・・   2行目: 項目2-1  項目2-2  ・・・・・・   3行目: 項目3-1  項目3-2  ・・・・・・     :      :        : ですので、前回のご質問の目的が、   2つのリストボックスで、選択する項目(行)の同期をとること   (同じ行数のリストで選択行のスクロールを同時に行う) が目的なら、上記のように1つのリストボックスで複数列を設定し、1行に2項目 (2列)のデータを表示するようにしたら如何でしょう? 今回のご質問も、同様にリストボックスに複数列の指定を行えば良いと思います。 以下(下記リンク先参照)に、リストボックスに複数列のデータ登録を行うサンプル マクロを掲載致します。宜しければ、検証してみて下さい。 ※当方では、Excel2000で作成・検証致しました。 ■サンプルマクロ(下記リンク先参照) http://ideone.com/DfqTS ■サンプルマクロの補足 1)このマクロは、ご提示のマクロソースをベースに変更・追加等をさせて頂きました。  ※ユーザーフォーム上のリストボックスへのデータ登録部分のみ記載しています。 2)このマクロは、[標準モジュール]への実装を想定しています。  ※関数 SetList2 は、ユーザーフォーム側の処理(ボタンクリックイベントなど)から   呼ぶようにして下さい。 3)ご提示の質問内容及びマクロでは、その処理仕様(データのフォーマット、データ  の検索及び操作方法など)が不明な部分がありましたので、以下の部分等につい  ては、こちらで勝手に決めさせて頂きました。  1.ワークシートのレイアウト  2.ユーザーフォームのレイアウト  3.ワークシートのデータ検索範囲をA列全体[a:a]ではなく、A列の空欄でないセル    の最終行までとする  4.InStr関数の第1引数(検索先の文字列)で指定している文字列変数(strCom)    の初期値設定の追加    ※当方では、このstrComの役割が不明なため、マクロ内の処理が正しいか     どうかは判りません。 添付画像は、こちらで検証した際のExcelシート及び、ユーザーフォームの画面を キャプチャしたものです。 ※貼れていなかったり、見辛かった場合はすみません。 以上です。

関連するQ&A

専門家に質問してみよう