• ベストアンサー

エクセルVBAで変数をセルに一行ずつ入力したい

色々検索してみたのですが難しくてわからなかったので質問させてください。 変数に格納した値 AA BB CC を一行ずつセルに入力するにはどうしたらいいでしょうか? よろしくお願いいたします。

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

  • ベストアンサー
  • matsu_jun
  • ベストアンサー率55% (146/265)
回答No.4

tool_goo さん、こんにちは そういう時は、Variant変数を定義し、Split関数で分割します。 改行コードを含んだ文字列が、変数HTMSTRに格納されているとして、 別途Variant変数 LINESTR を定義します。 Dim LINESTR As Variant LINESTR = Split(HTMSTR, vbCRLF) これで、LINESTRは、1行ごとの文字列が格納された配列として取り扱うことができます。 LINESTR(0) : 1行目の文字列 LINESTR(2) : 2行目の文字列 ・・・ 改行コードが不明なので、上では vbCRLF と記載しました。上の例で上手くいかなければ vbCR あるいは vbLF で試してみてください。 配列に格納されればあとは皆様の回答どおりに操作してください。

tool_goo
質問者

お礼

まさにこれでした。 改行コードでセパレートとはなるほど納得の目から鱗でした。 ありがとうございました。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

>変数に格納した値 これは具体的にどういう仕組み、場合に得られたものか、書いておくべきであると思う。 ーー (1)3変数に入れた。例 INPUTBOXなどで受け入れた。 (2)配列に入れた (3)シートのセルに入れた=>取り出し (4)その他 (コピペ、他ファイルから、その他) ーー それらがよく説明されていないので答えにくいが 行を示すポインタの役割をする変数 i を使い Sub test02() i = 3 hensu1 = "AA": hensu2 = "BB": hensu3 = "CC" <--この部分は他の部分で終わっているのかも Cells(i, "A") = hensu1 Cells(i + 1, "A") = hensu2 Cells(i + 2, "A") = hensu3 End Sub A3,A4,A5セルにセットする例。 質問に疑問を持った点が十分説明されておらず、回答がしにくい。 まだこういう公のコーナーに質問するのは早すぎるのでは? VBAの本を読んで例題をやってみて、少し経験を積んでそれから質問すべきと思う。 ーー >変数に格納した値 AA BB CC は1変数に上記データ(改行コード入り)がある場合(これならVBA中級でも質問する人が居るかも)と、3変数にある場合と考えられて表現が紛らわしい。

tool_goo
質問者

お礼

情報を小出しにするつもりではなかったのですが説明不足でした まず変数に格納しているのはhtmlのソースです エクセルから開いたページの改行コードCRLFで書かれたソースをセルに一行ずつ入力したいのです。 ソースを一行ずつ取得できれば問題はなかったのですが一気に取得するため 普通にセルに入力するとセルに内改行になってしまいます。 そのためこのような質問をしました。 長々と書きましたがやりたいことは 1変数に格納した可変のhtmlソースをセルに一行ずつ入力したいのです。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

一例です。 配列 =Array("AA","BB","CC") Cells(1, "A").Resize(UBound(配列) + 1) = Application.Transpose(配列)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

たとえば次のように。 sub macro1()  dim a  ’変数  dim i as long  a = array("aa","bb","cc")  for i=0 to ubound(a)   cells(i+1,"A") = a(i)  next i end sub

関連するQ&A