• ベストアンサー
  • すぐに回答を!

Excel VBAのTextboxについて

こんにちは。 Excelのユーザーフォームのテキストボックスに、  あああ  いいい と改行されたデータを入力した後、 セルA1に「あああ」 セルA2に「いいい」とできないでしょうか。 Windows2000、Office2003です。 あまり詳しくないので説明不足な点もあると思いますが、よろしくお願いいたします。

共感・応援の気持ちを伝えよう!

  • 回答数4
  • 閲覧数416
  • ありがとう数4

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

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

VBE画面で挿入ーユーザーフォーム そのフォームにテキストボックスとコマンドボタンをツールボックスからD&Dして、1つづつ貼り付けます。 コマンドボタンにクリックイベントを Private Sub CommandButton1_Click() a = TextBox1.Text s = Split(a, Chr(10)) For i = 0 To UBound(s) Worksheets("sheet4").Cells(i + 1, "A") = s(i) Next i End Sub にします(上記を貼り付け) Sheet4は適当に変えてください。 テキストボックスのプロパティボックスを開き EnterKeyBehavior=True MultiLine=True WordWrap=True を設定する。 そして実行する。 テキストボックスの中へ文字を入力する。 例 (+は続けて入力を示す。) おおた ひとし+(改行) 東京都千代田区+(改行) 大田 均+(改行) ・・ コマンドボタンをクリックする A1セル以下のセルに分かれて 上記語句・文章が入るでしょう。 質問には、こんなことでよいでしょうか。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございました!できました!!

関連するQ&A

  • Excel2000VBA テキストボックス内での改行で・・・

    ユーザーフォームにテキストボックスを作り、 テキストボックス内での改行をできるように設定します。 このテキストボックスに入力されたデータをセルに入力すると セルでは改行したところに「・」が入ってしまいます。 例えばテキストボックスに  こんにちは[改行]  いい天気ですね と入力して、これをsheet1のA1に入力します。すると、  こんにちは・  いい天気ですね と入力されてしまいます。 この「・」を表示しないようにする方法はありますか? よろしくお願いします。

  • excel vba ユーザーフォーム

    現在、セルa101からa110までに「商品名」、セルb101からb110までに「金額」が 入力済みです。 このデータを、ユーザーフォーム上にコンボボックスを2つ作成し、セルa1へ 商品名を選択後、入力。また、b2へ金額を選択後、入力させたいのです。 また、ユーザーフォーム上にテキストボックスを作成し、ここに入力した 「備考」の全角10文字をc1へ移動したいです。 今のところ、ユーザーフォーム、コンボボックス、テキストボックスを作成した だけで 立ち往生しています。 どなたか、ご教授お願いいたします。

  • エクセルVBAでの検索

    みなさんこんにちは。私は今仕事で使っているエクセルのデータをVBAを使って簡単にしたい!!と日々パソコンに向かっています。けれどなかなか進まず… 助けてください。 ユーザーフォームのテキストボックスに入力した特定の文字列を、データが載っているシートから検索し、その文字列が入力されているセルの左右のセルのデータをシートの特定の場所に表示させたいのですが。 どなたかお分かりになりますか? 私がやりたいことが上手く説明出来ているのか… スゴク不安なのですが…。説明が下手で申し訳ありません。  皆さんからの回答をお待ちしております。

その他の回答 (3)

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

こんにちは。 Multiline = True の EnterKeyBehavior =Trueで入る、「Enter」のコードは、vbCrLf です。だから、Split で、そのどちらかで区切ったら、片方が残ってしまいますから、その二つ(vbCrLf)を、デリミタにします。 Private Sub CommandButton1_Click() Dim buf() As String  If TextBox1.Text <> "" Then  buf = Split(TextBox1.Text, vbCrLf)  Range("A1").Resize(UBound(buf) - LBound(buf) + 1) = _    WorksheetFunction.Transpose(buf)  End If End Sub なお、ご質問は、A1, A2 になっていましたので、Range("A1")にしていますが、できれば、UserForm の立ち上げの際に、 モードレスモード(UserForm1.Show 0)にし、Range("A1")は、ActiveCell にしてください。必要なら、別にA1を Select/Activate してください。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございました。参考にいたします。

  • 回答No.2

Offset(x,y)がポイントでしょうか。 Dim MyRec As Range Private Sub CommandButton1_Click() Set MyRec = MyRec.Offset(1, 0) MyRec.Cells(0, 1).Value = TextBox1.Text End Sub Private Sub UserForm_Initialize() Set MyRec = Range("A1") End Sub

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございました。参考にいたします。

  • 回答No.1
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)

'こんな感じ Private Sub CommandButton1_Click() Dim a a = Split(TextBox1.Text, vbLf) Range("A1") = a(0) Range("A2") = a(1) End Sub

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございました。参考にいたします。

関連するQ&A

  • VBA フォーム上textbox指定範囲の抜き出し

    いつも大変お世話になっております。 フォーム上のテキストボックスにデータが記入されています。 -------------------------- ああああああああああああああああああ あああああああああああああああ あああああああああああああああああ -------------------------- いいいいいいいいいいい いいい いいいいいいいいいいい -------------------------- ううううううううううううう ううううううううううううううううううう ううううううううううううう -------------------------- 「--------------------------」でくくってある部分ごとに、 セルに書き出したいと思っています。 例えば、A1に ああああああああああああああああああ あああああああああああああああ あああああああああああああああああ A2に いいいいいいいいいいい いいい いいいいいいいいいいい A3に ううううううううううううう ううううううううううううううううううう ううううううううううううう としたいです。 これを実現する方法はあるのでしょうか? 置換すると、元データは消えてしまいますし、 テキストボックスの内容をセルに書き出して、 それをずらしていく?みたいな考えなのですかね? 部分で取得し、セルに書き出すということはできないのでしょうか。 回答いただけるとうれしいです。 よろしくお願いします!

  • エクセルのvbaでのふりがなについて…

    年賀状のために住所録を作成しているのですが、 住所から簡単に郵便番号を表示できるようにしたいと考えています。 いろいろ調べた結果、アドインのウィザードを使えばできるのは わかっているのですが…それとは別の方法で 住所を7桁の郵便番号で打ち込み、それを辞書ツールで変換して住所を作り、 その部分の振り仮名をphonetic関数で表示すれば郵便番号が 出力できることがわかりました。 しかし、これを今度vbaのユーザーフォームで入力した場合… 住所の部分をユーザーフォームのテキストボックスで入力し、 その住所の振り仮名を隣のセルに出力させようと思ったのですが、 textbox1 = cell(1,2).value の形で持ってくるきた上でエクセルのA1セルに =phonetic(A2) という表示をつけても振り仮名情報までは維持されないようで 振り仮名が表示できなくなってしまいました。 VBAのテキストボックスの中の文字の振り仮名情報などを エクセルのセルなどに転用できるような方法などあるのでしょうか? 説明下手ですみません…わかりにくいと書いていただければ また補足を付け足していこうと思うので… なにとぞ回答のほどよろしくお願いします。

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

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

  • エクセルVBAで別のユーザーフォームに入力したい

    こんにちは! ユーザーフォーム1と2があって、ユーザーフォーム2上のテキストボックスで入力したデータをユーザーフォーム1のテキストボックスに入力したいのですが、どのようにすればよいでしょうか? アドバイスの程よろしくお願いいたします。

  • Excel ユーザーフォームからの転記

    Excel ユーザーフォームからの転記 はじめまして、ご教授願います。 Exceiのユーザーフォーム内のテキストボックスのデータをシートに転記したいのですが、 教えてください。 テキストボックス内の改行を含んだデータを改行で区切って、別々のセル(縦に順に)に転記 したいのですが、方法がわかりません。 VBAでどのように書けばよろしいのでしょうか。 ご教授よろしくお願いします。

  • エクセルVBA

    例として次のような簡単な表があります(左上をセルA1とします)     1日 2日 3日 A商品 100 200 300 B商品 150 250 210 C商品 100 300 500 ユーザーフォームのテキストボックスに***を入力したとき 日付  ** A商品 *** B商品 *** C商品 *** 日付に対応した商品欄に入力させるには どう記述したらいいのでしょうか?

  • エクセルVBAで改行のやりかた

    ユーザーフォームでテキストボックスを設置しています。 エクセルファイルからデータを検索して、一致するものをこのテキストボックス内に表示したいのですが、 データがいくつもある場合、テキストボックス内で改行して表示したいのですがやり方がわかりません。 分かる方いらっしゃいましたら伝授お願いします。

  • Excel VBAで改行マークを削除する方法

    先日QNo.1801087で質問させていただいた件の続きです。 http://okwave.jp/kotaeru.php3?q=1801087 ユーザーフォームのテキストボックスに入力されたデータを複数のセルに入るように教えて頂きました。それは上手く行ったのですが、改行マークが(・)入ってしまって、その後の処理に問題が生じてしまうので、改行を削除するコードを記述しましたが、はじめの「0」が消えてしまって困ってます。  A1 942158621c9c05011020010a03020907・  A2 00054000・ Columns("A:A").Select Selection.Replace what:="" & Chr(13) & "", replacement:="" データは数字とアルファベットがランダムに並んでおり、全て文字列です。 A2のように数字のみの場合もあり、「0」から始まる時もあり、この「0」が一緒に削除されて「54000」となってしまいます。 上手く改行だけを削除し、「00054000」と文字列にするにはどうしたら良いのでしょうか。 Win2000、Office2003です。 よろしくお願いいたします。

  • エクセルVBAについて

    エクセルシートのデータ入力でユーザーフォームを作成してみました。テキストボックスを複数用意してそれぞれに顧客名であったり商品名、数量などを入力するものです。 そこで質問がございます。 現在の設定ではリターンキーを押すと「次行」コマンドが有効になり、次行のセルがアクティブになります。なのでマウスでテキストボックスをクリックしないとそれぞれの情報を入力できません。 顧客名から始まり、次に商品名、数量etc.とユーザーフォーム内でリターンキーで移動させる方法はあるのでしょうか。教えてくださいまし。

  • VBAでvlookupみたいに

    いつもわかりにくい質問ないようですみません。 今回もどういっていいわからないので、やりたいことを順を追って 書きますので、教えてください。 質問1) (1)VBAユーザーフォーム1でテキストボックスに入力 例)テキストボックス1・・・1200   テキストボックス2・・・えんぴつ これをエクセルシート1に反映させる。(下のように)    A    B 1 1200 えんぴつ 2   (2)ユーザーフォーム2でテキストボックスに  (1)のテキストボックス1で入力した数字を入力すると、  (1)のテキストボックス2の文字列を自動で反映してくる。 ・・・のように。 もうひとつ。 質問2) エクセルセル内のデータをVBAのテキストボックスに読み込む際、 元のエクセルセルに書式設定をしている場合に、書式ごと読み込むにはどうしたらいいですか? エクセルセル・・・吉田様(様は書式設定) テキストボックスに読み込んだ場合は、「吉田」のみが読み込まれてしまいます。 よろしくお願いします。