• 締切済み

VBA フォーム作成

ユーザーフォームを作成しテキストボックス、コマンドボタンを配置して、コマンドボタンに処理の内容を記述して実行することは出来たのですが、テキストボックスに文章を書く際に任意の位置で改行して実行すると改行した部分でセルA1とセルA2に分かれて入力されてしまいます。User Form1のプロパティMultiLineをTrueにしています。 アドバイス頂けますか。

みんなの回答

  • layy
  • ベストアンサー率23% (292/1222)
回答No.2

「User Form1のプロパティMultiLineをTrueにして」 テキストボックス表記でのプロパティですね?。 セル内を改行したくないために、となると そのコマンドボタンでの操作で 「テキストボックスの内容をセルA1へ反映するとき」 どういう記述をしたか、になるでしょう。 "1234 56789" の 先頭4文字をA1、後の5文字(9-4=5)をA2としたいなら、 LEFTやRIGHT、MIDなどの文字列制御関数を使ってみてはどうでしょうか。 改行無しで"123456789"としておく方がやりやすいです。 A1====LEFT("123456789",4) A2====RIGHT("123456789",LEN("123456789")-4)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

>A1とセルA2に分かれて入力されてしまいます。 どうしたいということでしょうか?A1とA2に分かれて入力されてしまっているが、A1, B2 にしたいのか、A1の中で改行されて入力したいのか、それとも、A1に一行で横に長く出力したいのか、書かれていません。 最近は、同じなうな質問が増えました。ですから、質問内容を一部無視して、こちらでコードを書くようにしました。 >User Form1のプロパティMultiLineをTrueにしています。 まず、 TextBox1 のプロパティのMultiLine =True, EnterKeyBehavior = True にしてあるとします。 Private Sub CommandButton1_Click() Dim buf As String If Len(TextBox1.Text) > 1 Then   buf = TextBox1.Text   buf = Replace(buf, vbCrLf, vbLf)   Range("A1").Value = buf End If End Sub