• ベストアンサー

複数行選択のテキストボックス

テキストボックスで複数行入力可能にしたのですが、1行づつセルへの抜き出しは出来るのでしょうか? 初心者なので、簡単に出来る方法を探しています。

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

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

シートにテイストボックスを貼り付ける。 (1)テキストボックスの「プロパティ」のMultiLineをTrueにする。 (2)テキストボックスではCTRL+ENTEキーで改行する。 (3)テキストボックスのダブルクリックイベントに Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) s = Split(TextBox1.Text, Chr(10)) For i = 0 To UBound(s) Cells(i + 1, "A") = s(i) Next i End Sub を貼り付ける。 テキストボックスで aaaaaaaaaaa zzzz xxccc ssss ddd xxxxxxxxxx ssss と入れて、ダブルクリックすると、A1:A7に aaaaaaaaaaa zzzz xxccc ssss ddd xxxxxxxxxx ssss となりました 。

jyagaimoimo
質問者

お礼

有難う御座います。教えて頂いた方法で無事に解決しました。不足だらけの質問にここまで親切に教えていただいて本当に有難う御座います。大変分り易かったです。

その他の回答 (3)

  • asobe
  • ベストアンサー率76% (10/13)
回答No.4

こんな方法もあります。 Dim obj As New DataObject With obj .SetText TextBox1.Text .PutInClipboard End With ActiveSheet.Paste 例えばテキストエディタからコピペした文字列は Excelシート上では改行コードごとに セルに収まります。 その応用で、一旦テキストボックスの内容をクリップボードに格納し、 貼り付けてやれば、1行ごとセルに収まるわけです。 ちなみに当方Excel2002で確認済みです。

jyagaimoimo
質問者

お礼

教えていただいて有難う御座いました。pesteが列方向へのpasteだったので上記の方法だけでは旨く行きませんでした。通常の行方向へでしたらこの方法がいいと思います。

回答No.2

開発ツールとしての Visual Basic ではなくて、Excel VBA のことでしょうか? テキストボックスはどこに置いたのでしょうか。 ユーザーフォームなのか、シートなのか。 とりあえず、 ユーザーフォーム "UserForm1" 上のコマンドボタン "CommandButton1" をクリックすると、UserForm1 上にある複数行入力可能なテキストボックス "TextBox1" に入力してある文字列をセルに書き出したい。 ただし書き出し方法は、テキストボックスの文字列の 1行ごとに書き出すセルも変えたい。 みたいなことでしょうか? # 他人に説明する場合はなるべく 5W1H で書くようにしましょうね。 CommandButton1 の Click イベント プロシージャに Dim inputLines As Variant inputLines = Split(Me.TextBox1.Text, vbCrLf) Dim i As Integer For i = 0 To UBound(inputLines) Cells(i + 1, 1).Value = inputLines(i) Next i と書いてみてください。 現在アクティブなシートの A1 から下に向かって書き出します。

回答No.1

できます。 APIを使う方法はネットで見つけたのでURLを載せておきます。 APIを使わなくても、1行の文字数とか決まっていればなんとかなります。私はAPIを使った時にちょっとうまくいかなかったので、自力で処理をしましたが、URLのところで問題なければ、その方が楽でしょう。

参考URL:
http://www.winapi-database.com/tips/59/index.html
jyagaimoimo
質問者

お礼

有難う御座います。URLの方法は正直初心者の私には返って分り難かったです。早速の回答有難う御座いました。

関連するQ&A