- ベストアンサー
ExcelVBA でリストリストボックスに列見出しをコーディングでつける
エクセルVBAのフォームにリストボックスを作り、データーベースから読み出したデータを表示させています。 この時、各列にテーブル名とはちがう列名をつけたいのですが、シートに記述するのではなく、コーディングでつける事は出来ませんか? ControlTipTextに「test1;test;test3;」と指定してみたりしましたが、駄目でした。 どなたかご教授、あるいは出来ません、シートに隠しか方法はありません、と全否定をしてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Wendy02 です。配列で入れる方法を考えてみましたが、できませんでした。 結局、他の方法としては、ListBox の 上に、白のLabel をそれぞれのColumnにあわせて、表示するぐらいしか、思いつきません。(これは、論外でしょうね) 列見出し(フィールド)は、もともと、Excelのワークシートの、データベース用の仕様のひとつだから、Rangeオブジェクトでしか、ListBox の Header に入れることは、出来ないようです。
その他の回答 (2)
- KenKen_SP
- ベストアンサー率62% (785/1258)
結論としては、#2 の Wendy02 さんが回答されているとおりです。 代替案(論外かも?)として、Windowsコモンコントロールの ListView コントロールは使えませんか?こちらは、ColumnHeaders.Add で簡単に列見出しを設定できますが。 ツールボックス「その他コントロール」-「Microsoft ListView Control 6.0」でフォームに貼り付けます。kこれが見当らないない場合、参照設定で、以下にチェックすると使えるようになります。 「Microsoft Windows Common Controls 6.0 (SP*)」 (*は環境により異なる) ListView コントロールは Comctl32.ocx または MsComctl.ocx に含まれていますが、これは Windows98 以降の OS には最初から英語版が入っているため、多くの環境では何もしなくても問題ないはずです。しかし、100%確実とは言えません。 問題がある場合は、VB6.0 用ランタイムパッケージを入手し、インストールすればよいのですが、参考URLで OCX だけ入手することが可能です。 また、ListViewコントロールの解説ページも紹介しておきます。ACCESSで解説されていますが、基本的にレコードがセルデータになる他はEXCELでも同様です。
- Wendy02
- ベストアンサー率57% (3570/6232)
VBAのフォームというのは、曖昧なのですが、ユーザーフォームのことでしょうか? >各列にテーブル名とはちがう列名をつけたい リストボックスに、列の見出しに違う名前をつける方法というのは、特別にないと思います。 ヘルプには以下のように書かれています。 「列見出しには、リストの 1 行目のデータ項目が使われます。列見出しに使うデータ項目を特に指定することはできません。」 別の臨時の場所に、コピーして、列見出しを設けるしかないのではないか、と思います。 ただ、私がレスつけるつけないに関わらず、私も、何か方法がないか探してみるつもりです。 ところで、ControlTipText というのは、ぜんぜん、目的の違うものですが、お分かりですか?ControlTipText というのは、ユーザーフォームの該当する場所に、マウスを持っていくと、ポップアップが現れる機能です。
お礼
ごめんなさい お礼が非常に遅くなりました ありがとうございました
お礼
ごめんなさい お礼が非常に遅くなりました ありがとうございました