• ベストアンサー

VBAのテキストフォームの折り返しについて

こんにちは。 あまりVBAに詳しく無いのですが、会社で必要に迫られ悪戦苦闘しながら開発をしています。 ですので、まだまだ分からない事が多く助けていただきたく質問した次第です。 題名の通り、今EXCELVBAで、 SQLからデータを取得し、シートに挿入。 で、そのシートのデータをコマンドボタンをトリガーにフォームに表示させるようにしているのですが、 UserFormのプロパティから直接WordWrapをTrueにしてもテキストフォーム内でデータが折り返されず、一列で表示されてしまいます。 SQLから取得するときはセルの書式をVBAで以下のように指定し、問題なく出来ました。 Columns("BF:BH").WrapText = True もちろん、セルで表示する場合と、フォームで表示する場合とでは違うのですが、これが原因なのかと思ってしまいます。 原因はなんなのか、対処法はどうしたらよいのか、 もし分かる方がいらっしゃいましたらご教授願えますでしょうか。 分かりづらい文章で大変恐縮ですが、何卒よろしくお願い致します。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

#1で既にご回答は出てますが フォームにテキストボックスを1つ張り付け テキストボックスのプロパティを手動で設定するか、下記コード を入れる。 Private Sub UserForm_Click() UserForm1.TextBox1.WordWrap = True UserForm1.TextBox1.MultiLine = True UserForm1.TextBox1.Text = "aaaa" & vbCrLf & "ffggg" End Sub または UserForm1.TextBox1.Text = "aaaa" & Chr(10) & "ffggg" 'UserForm1.TextBox1.Text = "aaaa" & vbLf & "ffggg" UserForm1.TextBox1.Text = "aaaa" & vbCr & "ffggg" などでも同じです。

mohican69
質問者

お礼

回答ありがとうございます。 コードでの対処方法も記載していただき、 ありがとうございました。 おかげで解決いたしました。

その他の回答 (1)

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.1

  WordWrap プロパティだけではなく MultiLine プロパティもTrueにしなければいけません。 外しましたらご容赦願いまする。  

mohican69
質問者

お礼

回答ありがとうございます。 おっしゃる通り、MultiLineプロパティをTrueにしたらできました。 ありがとうございました。

関連するQ&A