[[20180614133533]] 『テキストエリアを1行づつ修得したい』(初心者) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『テキストエリアを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

ねむねむさんありがとうございます!!!
感動です……理由もわかり、すっきりしました、本当にありがとうございました!!
最初に足す、というのがまったく思いつきませんでした……ありがとうございます!
(初心者) 2018/06/14(木) 15:30

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.