プロが教える店舗&オフィスのセキュリティ対策術

エクセルVBAのフォームにリストボックスを作り、データーベースから読み出したデータを表示させています。

この時、各列にテーブル名とはちがう列名をつけたいのですが、シートに記述するのではなく、コーディングでつける事は出来ませんか?

ControlTipTextに「test1;test;test3;」と指定してみたりしましたが、駄目でした。

どなたかご教授、あるいは出来ません、シートに隠しか方法はありません、と全否定をしてください。

A 回答 (3件)

Wendy02 です。

配列で入れる方法を考えてみましたが、できませんでした。

結局、他の方法としては、ListBox の 上に、白のLabel をそれぞれのColumnにあわせて、表示するぐらいしか、思いつきません。(これは、論外でしょうね)

列見出し(フィールド)は、もともと、Excelのワークシートの、データベース用の仕様のひとつだから、Rangeオブジェクトでしか、ListBox の Header に入れることは、出来ないようです。
    • good
    • 3

結論としては、#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でも同様です。

参考URL:http://www.tsware.jp/study/indexv10.htm,http://w …
    • good
    • 0
この回答へのお礼

ごめんなさい
お礼が非常に遅くなりました
ありがとうございました

お礼日時:2005/08/09 20:01

VBAのフォームというのは、曖昧なのですが、ユーザーフォームのことでしょうか?



>各列にテーブル名とはちがう列名をつけたい
リストボックスに、列の見出しに違う名前をつける方法というのは、特別にないと思います。

ヘルプには以下のように書かれています。

 「列見出しには、リストの 1 行目のデータ項目が使われます。列見出しに使うデータ項目を特に指定することはできません。」

別の臨時の場所に、コピーして、列見出しを設けるしかないのではないか、と思います。

ただ、私がレスつけるつけないに関わらず、私も、何か方法がないか探してみるつもりです。

ところで、ControlTipText というのは、ぜんぜん、目的の違うものですが、お分かりですか?ControlTipText というのは、ユーザーフォームの該当する場所に、マウスを持っていくと、ポップアップが現れる機能です。
    • good
    • 2
この回答へのお礼

ごめんなさい
お礼が非常に遅くなりました
ありがとうございました

お礼日時:2005/08/09 20:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A