- ベストアンサー
VBAのコンボについて
VBAでプログラミングをしています。 ワークシート上にコンボボックスを配置していて、表示データがコンボ枠内に収まり切れていません。例えば、全角10文字データが4文字しか見えない。 全部文字が見えるように途中で改行したりする方法ってあるんでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
失礼いたしました。 どうやら、コンボボックスや、リストボックスでは改行できないようです。 #2さんのおっしゃられるように、幅を動的に変えて表示していくのが無難ではないでしょうか。 AutoSizeプロパティをTrueにするなども有効な手段です。
その他の回答 (2)
- hige_082
- ベストアンサー率50% (379/747)
回答No.2
こんな方法も コントロールツールボックスの方のコンボボックスなら プロパティのListWidthの値を変更すれば リスト部分の表示幅が変更可能です フォームのコンボボックスを使用ならスルーしてください
- AKARI0418
- ベストアンサー率67% (112/166)
回答No.1
改行するにはVbCrLfという組み込みの定数を使用します。 str = "aaa" & VbCrLf & "bbb" 4文字しか見えないということですので、4文字ごとにVbCrLfをはさんでいけばよいと思います。 str = "12345678901234567890" Result = left(str,4) For i = 1 To Len(str) / 4 - 1 Result = Result & vbCrLf & Mid(str, 4 * i + 1, 4) Next i 取り出すときは Replace(str,VbCrLf,"") とすれば改行コードは削除されます。
補足
ありがとうございます。 やってみました。VB上でデバックしているときは、変数上では改行コードが反映されていましたが、 エクセルのコンボ内では文字化けが起こってしまっています。 OLEObjectsを使うとよくないのでしょうか? フォントは普通にMSゴシックです。