[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『テキストエリアを1行づつ修得したい』(初心者)
VBA初心者です。
ユーザーフォーム内にテキストエリアを設置しております。
以下のコードで、テキストエリア内での改行がエンターでできることは分かりました。
With TextBox1
.MultiLine = True .EnterKeyBehavior = True End With
これを、
テキストエリアの1行目=sheet1のA1セルへ
テキストエリアの2行目=sheet1のA2セルへ
といった形に表示したいです。
「改行」というワードでの調べ方が行けなかったのか、思う形に出会えず、苦戦しております。
テキストエリアの各行を取得するのだと思うのですが、いまいちわからず…教えていただきたいです。
また、テキストエリアは1行の時もあれば4行の時もあります。(表示エリアの関係上最高6行です)
0行(記入なし)の場合もあります。
よろしくお願いします。
< 使用 Excel:Excel2010、使用 OS:Windows8 >
テキストエリアというのがテキストボックスだとして。 フォーム上にコマンドボタンを置いてボタンをクリックでセルに書き込んでいる。 Private Sub CommandButton1_Click() Dim WK_TEXT As Variant Dim L_CNT As Integer WK_TEXT = Split(Me.TextBox1.Value, vbCrLf) For L_CNT = 0 To UBound(WK_TEXT) Worksheets("Sheet1").Cells(L_CNT + 1, "A") = WK_TEXT(L_CNT) Next End Sub
(ねむねむ) 2018/06/14(木) 13:57
こちらのコードで無事思っていることができました!ありがとうございます!
Splitは使ったことがありませんでした…勉強になります。
一つお聞きしたいのですが、この場合、A10セルからなどの場合はどのように変更するのが正しいのでしょう…?
Worksheets("Sheet1").Cells(10, "A") = WK_TEXT(L_CNT) →A10セルに表示されるも1行だけ(当然ですよね;
かといってL_CNTの初期数値は0がいいし…と欲張ってしまっております。
シートを新たに作成、そこのA1〜表示したものを、本来表示したい箇所にコピペして、シートを削除するか…?
と思っているのですが、他にもし方法があれば教えていただけると助かります。
(初心者) 2018/06/14(木) 15:03
L_CNTは0から1ずつ増えているので最初の行(10行目)にそれを足せばいい。 Worksheets("Sheet1").Cells(10 + L_CNT, "A") = WK_TEXT(L_CNT) で。 (ねむねむ) 2018/06/14(木) 15:07
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.