Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6485 / 13644 ツリー ←次へ | 前へ→

【44962】テキストボックスからセルに表示する方法は? ぽんぽん 06/12/8(金) 12:46 質問[未読]
【44965】Re:テキストボックスからセルに表示する方... かみちゃん 06/12/8(金) 12:57 発言[未読]
【44968】Re:テキストボックスからセルに表示する方... ぽんぽん 06/12/8(金) 13:27 お礼[未読]
【44969】Re:テキストボックスからセルに表示する方... Blue 06/12/8(金) 14:26 回答[未読]
【44970】Re:テキストボックスからセルに表示する方... ぽんぽん 06/12/8(金) 14:40 お礼[未読]

【44962】テキストボックスからセルに表示する方法...
質問  ぽんぽん  - 06/12/8(金) 12:46 -

引用なし
パスワード
   ユーザフォームにテキストボックスを設置しました。
改行とスクロールバー(縦)設定にして、何行でもテキストボックスに入れることが出来ます。
そこで、テキストボックスに入力した値を、改行したごとに各セルに入れたいのですが、どのようにしたらいいのでしょうか。
今は下記のようにボタンに設定してあるだけなので、ひとつのセルに改行されて、表示されてしまいます。

どなたかご教示いただけないでしょうか。
よろしくお願いいたします。

Private Sub CommandButton1_Click()

  Sheets(1).Range("A1").Value = UserForm1.TextBox1.Text
  Unload Me

End Sub

【44965】Re:テキストボックスからセルに表示する...
発言  かみちゃん  - 06/12/8(金) 12:57 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> テキストボックスに入力した値を、改行したごとに各セルに入れたい

縦方向か横方向かわかりませんが、縦方向であれば、以下のような感じです。
 Dim vntData As Variant
 
 vntData = Split(TextBox.Value, vbCrLf)
 Range("A1").Resize(UBound(vntData) + 1).Value = WorksheetFunction.Transpose(vntData)

【44968】Re:テキストボックスからセルに表示する...
お礼  ぽんぽん  - 06/12/8(金) 13:27 -

引用なし
パスワード
   ▼かみちゃん さん:

出来ました。感動です。。。。。
早々にありがとうございました。

図々しくてすいません。もう一点教えていただきたいのですが、
そのフォームを表示したときに、先にA列に入れた値を再度、テキストボックスに表示させるにはどのようにしたらいいのでしょうか?
当然、下記のようなかき方では駄目ですよね。
というか、駄目でした。

どうかよろしくお願いいたします。

UserForm1.TextBox1.Text = Sheets(1).Range("A:A").Value

【44969】Re:テキストボックスからセルに表示する...
回答  Blue  - 06/12/8(金) 14:26 -

引用なし
パスワード
   > Dim vntData As Variant
> 
> vntData = Split(TextBox.Value, vbCrLf)
> Range("A1").Resize(UBound(vntData) + 1).Value = WorksheetFunction.Transpose(vntData)
の逆をすればいいだけなのでは?

Dim vntData As Variant
vntData = WorksheetFunction.Transpose(Range(Range("A1"), Range("A65536").End(xlUp)))
TextBox1.Value = Join(vntData, vbCrLf)

【44970】Re:テキストボックスからセルに表示する...
お礼  ぽんぽん  - 06/12/8(金) 14:40 -

引用なし
パスワード
   ▼Blue さん:

ありがとうございます。
教えていただいた方法で出来ました。

強引に↓こんな風に書いてみましたが、Blueさんから教えていただいたほうが、とても”らしくて”、かっこいいので使わせていただきます。
ありがとうございました。

  AAA = Range("A65536").End(xlUp).Row

  Range("A1:A" & AAA).Select
  Selection.Copy
  UserForm1.TextBox1.Paste

6485 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free