• ベストアンサー

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

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

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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

  • [VBA]テキストボックスからエクセル反映(複数行)

    始めまして。初めて質問させて頂きます。至らない点があると思いますがよろしくお願い致します。 今テキストボックスよりエクセル(単一セル)に文字を入力するシートを作成しております。 テキストボックスで複数行入力(Enterで改行)の方法と複数行入力した文字をシート(1セル)に反映したいのですが良い方法をご存知でしたらご教授お願いします。 【やりたい事項】 テキストボックス内 (1)○は△です。(Enterで改行) (2)×は●です。 エクセルシート上(A1セルで) (1)○は△です。(ALT+Enter) (2)×は●です。 現状:MultiLineをTRUEにして右端まで文字入力すると2行目に入力可能 エクセルに反映すると「○は△です。×は●です。」と1セルで1行で表示となってます。 言葉足らずかもしれませんが、よろしくお願いします。

  • excel vba複数行入力可能なテキストボックスを上段から複数列に表示

    よろしくお願いします。 現在ユーザーフォーム上に3つのテキストボックス (複数行ではありません)があり、それぞれに文字を打ち込んで、コマンドボタンでセルに転記させているのですが、もっと効率のよい方法はないのかと思い探したもののなかったため質問いたします。 (複数行のセルにはありましたが、複数列のセルに転記がなかったため) 複数行入力可能なテキストボックスに入力された文字を上段から1行ずつA10からC10と列に転記したいのです。 こんな感じです テキストボックス |------| |AAA       |  |BBB       | |CCC       | |------| 複数行入力し(空欄の時もあります)コマンドボタンをクリックすると シート1の     A      B     C ・ 10 AAA   BBB   CCC

  • 【VB6】複数行のテキストボックスの改行

    お世話になります。 VB6で、複数行入力出来るテキストボックスを作成しました。 そのテキストボックスの横幅は、最大30文字(60byte)まで入力出来ます。 ですが、あくまでフォーム上で伸縮させていた為、中途半端に折り返しされます。 【例】 iiiiiiiiiijjjjjjjjjjiiiiiiiiiijjjjjjjjjjiiiiiiiiiijjjあ jjjjjjj (↑計62バイトなので、本来であれば2行目に改行されてしまったjjjjjjjの左5文字を1行目に表示させたい) その行は特定のバイトを超えたらその場で強制的に改行!というソースを追加したいです。 その為には、常にテキストボックスの入力バイト数を監視するようにしなければならないと思いますが、なるべく動作や容量が重くならないような方法はありますでしょうか?

  • Excelの1セルへの複数行テキスト入力法

    複数行から成るテキストを Excel のひとつのセルに入力したいのですが、テキスト全体がひとつのセル内に収まらず、複数のセルに分かれて入力されます。 テキスト全体をひとつのセルに入れる方法を教えてください。

  • 複数行のテキストボックスを受け取って、改行させたい。

    複数行のテキストボックスを受け取って、改行させたい。 お世話になります。ASP.NET VB2005を使っています。 Byrefでテキストボックスと、ByValで何桁目で改行させたいかを受け取って、 テキストボックスの内容を指定桁数で改行を入れたいのですが、 どのようにすればいいのでしょうか? 1行目が何桁あるかを判断する。 指定された桁数以上あったら改行させる。 という事を実現したいと考えています。 以上です、宜しくお願い致します。

  • テキストボックスから、複数のシートに転記する方法・・・

    初心者でございます。 テキストボックスに入力したデータを、データベースに行を挿入してその行の各セルへ転記する方法として、以下の方法をとっています。 Private Sub 登録Button1_Click() Dim rowscount As Long rowscount = Range("データ範囲").Rows.Count Range("データ範囲").Cells(rowscount, 1).EntireRow.Insert Range("データ範囲").Cells(rowscount, 2) = TextBox1.Text このテキストボックスに入力したデータを別の2つのシートへも転記したいのですが、どのように複数の転記先を指定してよいかわかりません。どうかご教授お願いいたします。(Excel2003を使用しております)

  • テキストボックスでの行の認識

    テキストボックスで2行以上入力不可にしたいんですが、方法が分かりません。 単に改行を含むのならEnterキーの2回目を押せなくすればいいのですが、テキストボックスって端までいくと自動的に2行になりますよね。この場合は改行コードが入ってないんです。だから単純にEnterキーの制御だけでは出来ないんです。 なにか良き方法が有れば教えていただけないでしょうか?

  • テキストボックスの複数選択(その2)

    前回、ここで教えていただきました。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1809271 リストボックスで複数選択をして、選択項目を 北海道、青森、新潟というふうに「、」で区切ってセルへ表示の仕方を質問しましたが A1のセルへ北海道 B1のセルは青森 C1のセルへ新潟というふうに表示させる方法を教えてください。 初心者ですので、解説も入れていただけると助かります。 よろしくお願いします。

  • VBでテキストボックスの重複行削除

    テキストボックスのチェンジイベントでテキストボックスに貼り付けた複数行のデータに 重複行があればその行を消したいのですがうまくいきません。 良い方法があればご教示下さい。 例) 1111 2222 1111 3333 4444 ↓↓ 1111 2222 3333 4444

  • テキストボックスの内容(複数行)をリストへ

    テキストボックスの内容(複数行)をリストボックスへ1行表示にするにはどうすれば良いのでしょうか? replaceにてvbcrlf(改行文字?)を置き換えしようとしても無理でした。 ご教授お願いします。

専門家に質問してみよう