- ベストアンサー
[Excel VBA] 行の値を1つの変数に代入したい
たとえばA1:A10に値があったら、3個ずつ値を1つの変数に代入したいのですがそのようなことは可能でしょうか?(改行は"%0D%0A"に置換します) たとえば、A1:A10に A B C D E F G H I J K とあったら、 1ループ目: strString = "A%0D%0AB%0D%0AC" のように代入したいのですが。 1つ1つのセルの値を追加代入していくしかないのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Sub etst01() d = Range("A65536").End(xlUp).Row Dim x(100) j = 1 For i = 1 To d Step 3 x(j) = Cells(i, "A") & vbCrLf & Cells(i + 1, "A") & vbCrLf & Cells(i + 2, "A") MsgBox x(j) j = j + 1 Next i End Sub でどうですか。 MsgBoxのところで処理をするか、EndSubの前で処理をしてください。 VbLF、vbCrがよければ変えてください。 しかし質問を離れて、質問者の当面する課題(質問では述べられてないが)の全体を考えて、質問のロジックの利用は、ベターなロジックでないような(推測!ですが)臭いがします。
その他の回答 (1)
- kokorone
- ベストアンサー率38% (417/1093)
ワークシート関数Application.WorksheetFunction.concatenate() を利用し、セルの中身・改行コードを連結してみてはいかがでしょうか?
お礼
ありがとうございます。 こんな使い方できるのですね。 ありがとうございます。 本当は3個ずつではないのですが、複数個並べられるのですね。工夫してみます。 ありがとうございます。
お礼
ありがとうございます。 いわいるカード形式に並んだデータをWebに投入衰退のですよ。 イメージとしてこんな感じです。 山田太郎 東京都xxx 03-xxxx 山本花子 大阪府xxxx 06-xxxx Cellsと&で結んでいくやり方ですね。 本当は50項目あるのでちょっと考えてみます。 ありがとうございます。
補足
For i = 1 To 49 strStrings = strStrings & Cells(i, 1) & vbCrLf Next i strStrings = strStrings & Cells(50, 1) Range("B1").Value = strStrings ありがとうございました。 結局上記のようにすることで対応完了いたしました。 ありがとうございます。 p.s. 「改行」の変数なんてのがあったんですね。 知りませんでした。 ありがとうございます。