• ベストアンサー

エクセル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/17068)
回答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/7940)
回答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

  • エクセルのセル分けについて教えてください。

    エクセルで、1つのセルに  aa,"bb","cc,"dd","ee" というように入力されています。 それをaa bb cc のようにそれぞれのセルに分けたいのですが、方法が分かりません。 ご存知の方がいらっしゃいましたら、教えてください。宜しくお願いします。

  • splitを使って、コンマ区切りで変数を出したいです。

    こんにちは。 いつもお世話になっております。 データファイルを開き、一覧を $all_dataに入れました。 その後、 ($aa,$bb,$cc) = split(/\,/,$all_data); と書いて、変数$aa $bb $cc へ入れたいのです。 3個程度の変数に格納するのは、問題なく出来たのですが、 ($aa,$bb,$cc)を、($aa,$bb,…36個)の変数で指定した途端 $all_data の最後のデータのみ$aa $bbに入り、その後の $cc以降の変数は、空白となってしまいました。 一覧を、$all_dataに入れた後、print で一覧を出してみたのですが、 あいう,えお,かき,くけこ,…<略>… と、36個の文字が,で区切られて出てきました。 何が悪いのか判らなくて、途方にくれております…。 split を使って36個もの変数に直そうとするのが 間違いなのかな、と思って @array = split(/\,/,$all_data); として、 $aa = $array[0]; $bb = $array[1]; としてみたのですが、$all_dataの最後と、最後から 二つ目のデータが$aa $bb に入り、$cc 以降は 空白となってしまいました……。 どうか、ご指導よろしくお願い申し上げます。

    • ベストアンサー
    • Perl
  • エクセルのVBAを使って、セルの値の検索をしたいと思ってます。

    エクセルのVBAを使って、セルの値の検索をしたいと思ってます。 ですが、cells.findのように、アクティブセルが移動することなしに、値のみを取得し、変数に格納したいと思っていますが、どうすればよいか、見当がつきません。 繰り返し構文を使えば、検索はできますが、それだと、無駄に重くなりそうなので、何か良い方法はありませんか?

  • エクセルファイルのセル値に特定文字列を追加して別ファイルに

    VB2008でのプログラム方法についての相談です。以下の手順を実現したいです。 (1)エクセルファイルのあるセル中にあるデータを取得 例)A1セルの値"AA"、A2セルの値"BB"、A3セルの値"CC"..... (2)決まりきった特定文字列と(1)の値を結合 例)くっつけたい文字列 " "+AA ⇒ くっつけたい文字列"AA" くっつけたい文字列 " "+BB ⇒ くっつけたい文字列"BB" くっつけたい文字列 " "+CC ⇒ くっつけたい文字列"CC" (3)テキストファイルを生成 ○○○.txt 例) くっつけたい文字列"AA" くっつけたい文字列"BB" くっつけたい文字列"CC"

  • エクセルの条件検索

    行の先頭の値を返すには エクセル関数をどのようにつかったらよいのでしょうか? たとえば CC1を検索すると Bが表示されるようにしたいのですが A AA1 AA2 AA3 AA4 B BB1 BB2 CC1 D BB4 AA5 この表には同じ値は絶対ありません。 VLOOKUPなど LOOKUPを主に検索をしてみたのですが、わかりませんでした よろしくおねがいいたします。

  • エクセルで

    エクセルである1列に入力されてる文字の中で同じ値の数を数えたいのですが。 例えば     A列  B列   1 aa 2 bb 3 cc 4 aa 5 cc ・ ・ ・ 100 bb といった表で「aa」「bb」「cc」等、その列に入力されているすべてのデータのそれぞれの数を一度に表示させることは可能でしょうか? 分かりにくくて申し訳ありませんが詳しい方がいらっしゃいましたらよろしくお願い致します。

  • エクセルで消えないセルを作りたい。

    よろしくお願いします。 エクセルで、例えばB2のセルに「aa」、B3のセルに「bb」と入力したとします。 そして、A1からC3まで範囲選択をしてDeletをおしてもB2のセルの「aa」だけは消えないようにすることは可能でしょうか? エクセルは2000です。

  • セルの隣のセルの値を取得 VBA

    初歩的な質問ですいません 検索したセル(最大値)の隣のセルの値(L)を取得したいです。 どこまでのコードを貼り付けたらいいかわかりませんが、 ret = Application.Max(Range("M:M")) と変数に格納したのですが、その後 piyo = ret.ActiveCell.Previous このようにしてみましたが、取得出来ていないようです。 記述法なのか、よろしくお願いします。

  • EXCEL VBA Byte型に"0"を付けたい

    EXCEL VBAにてあるセルの値をByte型の16進数に 変換していますが、変換後の値の頭に"0"が付かなくて 困っています。 Dim a As String Dim aa As String Dim b As Byte Dim bb As Byte a = Val("&H" & Cells(1, 1)) aa = Format(a, "00") b = aa bb = Format(b, "00") 変数など簡略化していますが、こんな感じです。 最後の"bb"の中身が、例えば"01"ではなく"1"と なってしまっています。 バイナリエディタで表示した時に、"111"ではなく "010101"と表示させたいのですが、、、 この方法にこだわっている訳ではないので 他の方法も含めて、ご教示お願いします。

  • またまたVBAのデータの型変数で質問

    あるセルに「=IF(N50 =O50,"","×")」の関数が入ってます。比較して合っているならNULL、相違なら×(バツ)をいれるというものです。 質問はこのセルの値をマクロである変数に格納するにはどんな型を使用すればいいのか?です。 格納できればどんな方法でもいいです。 Dim buf as String と変数の宣言してbufに上記の関数の結果のみを入れたいのですが型が違いますとエラーがでます。セルが算術式のときの型ってなんでしょうか? 目的はNULLは大丈夫なのですが、バツ(×)を変数に格納したいです。 よろしくお願いいたします。

専門家に質問してみよう