[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/11/13(Sun) 08:38
投稿者名:TERUさん
Eメール:
URL :
タイトル:
リストボックス内のテキスト長について
EXCEL2000のVBAを使用しています。
複数行を表示するリストボックスのなかで、ある行のテキストが長く、全体が表示されない
場合、コード上でそのテキストの長さに合わせてColumnwidthを調整することは可能でしょう
か?
今はデザイン時にあらかじめ設定していますが、それを超える長さのテキストがある場合に
は、表示されない部分が出てしまいます。Textwidthなどが使用できないか試してみたのです
が、うまくいきませんでした。
よろしくお願いします。

投稿時間:2005/11/13(Sun) 18:35
投稿者名:マヨ
Eメール:
URL :
タイトル:
Re: リストボックス内のテキスト長について
確か例えば3列のリストボックスの場合

   ListBox1.ColumnWidths = "0cm;1cm;2cm"

という具合に指定できたと思いますが、事前に一番長いテキスト長を求めてから
FormのInitializeイベント等であらかじめ設定してみてはどうでしょうか。

投稿時間:2005/11/13(Sun) 18:47
投稿者名:TERUさん
Eメール:
URL :
タイトル:
Re^2: リストボックス内のテキスト長について
> 確か例えば3列のリストボックスの場合
>
>    ListBox1.ColumnWidths = "0cm;1cm;2cm"
>
> という具合に指定できたと思いますが、事前に一番長いテキスト長を求めてから
> FormのInitializeイベント等であらかじめ設定してみてはどうでしょうか。

ありがとうございます。

ただ、このリストは他のリストの選択に伴って内容が変わるようになっています。
できればその度に最長のテキスト長を求めるようにしたいのですが、その場合に使用する関数などがあ
るのでしょうか?

教えていただければ幸いです。

投稿時間:2005/11/13(Sun) 22:04
投稿者名:マヨ
Eメール:
URL :
タイトル:
Re^3: リストボックス内のテキスト長について
リストボックスのデータソースがデータベースからのデータ等でしたら事前にテキストの最大長を取得し
ておくことも簡単かと思いますが、他の方法としては、データ用の多次元配列を用意しておき、一旦デー
タを配列に格納します。
その際テキストの最大長を記憶しておき、格納し終えたらColumnWidthsへ列幅の設定を行った後、配列を
一括してリストボックスへセットするとか。
(リストボックスのListプロパティへは配列の代入が可能です。)
ただ、実際試していないので何ともですが、Columnプロパティへも同時に配列を渡すことで列幅の設定な
しにシステムの方で列幅を自動調整してくれる可能性があります。試してみてください。

投稿時間:2005/11/13(Sun) 22:52
投稿者名:TERUさん
Eメール:
URL :
タイトル:
Re^4: リストボックス内のテキスト長について
> リストボックスのデータソースがデータベースからのデータ等でしたら事前にテキストの最大長を

得し
> ておくことも簡単かと思いますが、他の方法としては、データ用の多次元配列を用意しておき、一

デー
> タを配列に格納します。
> その際テキストの最大長を記憶しておき、格納し終えたらColumnWidthsへ列幅の設定を行った後、

列を
> 一括してリストボックスへセットするとか。
> (リストボックスのListプロパティへは配列の代入が可能です。)
> ただ、実際試していないので何ともですが、Columnプロパティへも同時に配列を渡すことで列幅の

定な
> しにシステムの方で列幅を自動調整してくれる可能性があります。試してみてください。

すみません。さらに基本的な質問になりますが・・・
テキストの長さをピクセル単位で計るにはどうしたらいいのでしょうか?
Columnwidthプロパティはピクセル値で設定する必要があると思ったんですが、それ以外での設定が可能
なのでしょうか?インターネットで調べると、Mesurestringメソッドなどが紹介されていますが、
EXCEL2000のVBAでは使用できないように思われます(間違っているかもしれません)。

非常に基礎的な質問ですが、よろしくお願いします。

投稿時間:2005/11/14(Mon) 12:46
投稿者名:watasiki
Eメール:
URL :
タイトル:
Re^5: リストボックス内のテキスト長について
Columns("A:B").EntireColumn.AutoFit
または
Cells.EntireColumn.AutoFit
じゃぁだめなのですか?

投稿時間:2005/11/15(Tue) 19:57
投稿者名:TERUさん
Eメール:
URL :
タイトル:
Re^6: リストボックス内のテキスト長について
> Columns("A:B").EntireColumn.AutoFit
> または
> Cells.EntireColumn.AutoFit
> じゃぁだめなのですか?

連絡が遅くなり、申し訳ありません。
ご回答いただき、ありがとうございました。