• ベストアンサー

[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つのセルの値を追加代入していくしかないのでしょうか?

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.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がよければ変えてください。 しかし質問を離れて、質問者の当面する課題(質問では述べられてないが)の全体を考えて、質問のロジックの利用は、ベターなロジックでないような(推測!ですが)臭いがします。

yn001ster
質問者

お礼

ありがとうございます。 いわいるカード形式に並んだデータをWebに投入衰退のですよ。 イメージとしてこんな感じです。 山田太郎 東京都xxx 03-xxxx 山本花子 大阪府xxxx 06-xxxx Cellsと&で結んでいくやり方ですね。 本当は50項目あるのでちょっと考えてみます。 ありがとうございます。

yn001ster
質問者

補足

For i = 1 To 49 strStrings = strStrings & Cells(i, 1) & vbCrLf Next i strStrings = strStrings & Cells(50, 1) Range("B1").Value = strStrings ありがとうございました。 結局上記のようにすることで対応完了いたしました。 ありがとうございます。 p.s. 「改行」の変数なんてのがあったんですね。 知りませんでした。 ありがとうございます。

その他の回答 (1)

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.1

ワークシート関数Application.WorksheetFunction.concatenate() を利用し、セルの中身・改行コードを連結してみてはいかがでしょうか?

yn001ster
質問者

お礼

ありがとうございます。 こんな使い方できるのですね。 ありがとうございます。 本当は3個ずつではないのですが、複数個並べられるのですね。工夫してみます。 ありがとうございます。

関連するQ&A

専門家に質問してみよう