- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBAでレイアウトを変えて表作成)
エクセルVBAでレイアウトを変えて表作成
このQ&Aのポイント
- エクセルの表をレイアウトを変えてcsv出力する方法についての質問です。
- 具体的には、既存の表の値を特定の条件で新しい表に変換し、csv形式で出力する方法を知りたいです。
- 既存の表の特定の値を取得し、任意の位置にセットした後、改行して次の値を処理する方法が分かりません。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>簡易で具体的 「具体的に」は表はA1を左上として2行目からデータ、C列から100cmが始まっているとする 「具体的に」は表の中身は「数字を手入力」していて、数式とかで表示してるんじゃないとする 「具体的に」はCSVファイルの保存先は「c:\test\」フォルダの中、ファイル名は「test.csv」とする sub macro1() dim h as range dim buf as string open "c:\test\test.csv" for output as #1 for each h in range("C2:F5") if h <> "" then buf = cells(h.row, "A") & "," buf = buf & cells(h.row, "B") & "," buf = buf & cells(1, h.column) & "," buf = buf & h.value print #1, buf end if next close #1 end sub
お礼
早速のご回答ありがとうございました。 あらかじめ新規作成して開いておいたcsvファイルに 「空白ではない値に出会ったら、 その行のA列の値+B列の値+その列の1行目(サイズタイトルセル)の値+空白でない値(在庫数) を1レコードとして任意の場所にセット 改行してまた進めていく」 をすごくシンプルに1つの変数にセットしては 出力し、を繰り返しているんですね。 手順を二つに分ける必要もなくすぐに目的が 達成できました。 ご親切にどうもありがとうございました。
補足
「具体的に」アドバイスを求めるのなら もっと「具体的に」要望を記述するようにとの 痛快な無言のアドバイスが含まれていたりしますか? (;´Д`A ``` だとしたら次に活かします。 とにかく、大変助かりました!m(_ _)m