🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

1回答

1409閲覧

csv内のソース部分セルをそれぞれhtmlファイルに書き出したい

yoshino_hanako

総合スコア1

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

2クリップ

投稿2021/01/26 01:40

編集2021/01/26 04:27

ECサイト修正の仕事をしております。
商品ページのデータを落としたcsvがあるのですが、そのうちのソース部分のセルを、VBAを用いてすべてそれぞれhtmlファイルに書き出したいです。

例)
商品ID,商品名,ページ内ソース
00001,りんご,<div><p>美味しいリンゴです</p></div>
00002,みかん,<div><p>お得なミカンです</p></div>


(数百行)

といった形のcsvから、
<div><p>美味しいリンゴです</p></div>」を○○.htmlに、
<div><p>お得なミカンです</p></div>」を××.htmlに、としたいのです。

恥ずかしながらVBAやマクロは全くの初心者です。
「エクセル VBA セル htmlファイルに書き出し」等で検索しても、エクセルの表をテーブルに直す等の結果しか見つからず、セルをそれぞれ別ファイルに掃き出し方法がわからないため途方に暮れております。

お優しい方、なんとか処理のコードのヒントを頂けないでしょうか。
どうぞよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

出来るか出来ないかでいえば出来ますね。
質問文が修正されたので追記。
まず下記サイトのサンプルコードを前提として解説します。
Excel VBA テキストファイルで.htmlの雛型を作成する

VBA

1 Dim strFNAME As String 'ファイル名格納用 2 3 'ブックと同じ位置にtest165.htmlを作成する 4 strFNAME = ThisWorkbook.Path & "\test165.html" 'ファイル名の作成 5 Open strFNAME For Output As #1 'ファイル番号1で新規作成

ファイルの作成部分はこのコードになります。
VBAはopenの宣言と共にファイルが存在しなければ自動的にファイルが作成されます。(少しラグがありますし同名ファイルが存在すれば動作は変わります)
F8でコードを1行ずつ進めていけばこのタイミングでファイルが生成されているのは確認できます。

質問では1セルごとに作成したいとのことなのですが命名規則などが分からないのでforループで作成します。

VBA

1Sub test001() 2 3 Dim strFNAME As String 'ファイル名格納用 4 5 For i = 1 To 10 6 7 'ブックと同じ位置に変数名iの.htmlを作成する 8 strFNAME = ThisWorkbook.Path & "\" & i & ".html" 'ファイル名の作成 9 Open strFNAME For Output As #1 'ファイル番号1で新規作成 10 11 'データ書き込み、 12 Print #1, ActiveSheet.Cells(i, 3).Value 13 14 Close #1 '開いたら閉じようね 15 16 Next 17End Sub

このコードであればactivesheetのC列を上から10セル分データを書き出します。
また、変数でセル位置も指定しているので中身のデータも個別になっています。
C列に1~10までの数値を入れれば確認できるでしょう。
最終行の取得は
最終行の取得
をみてください。
これで想定通りの動きになりますか?

投稿2021/01/26 02:31

編集2021/01/26 06:23
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoshino_hanako

2021/01/26 02:35

ありがとうございます。 質問が悪かったですね、書き出す方法を知りたいです。
退会済みユーザー

退会済みユーザー

2021/01/26 02:49

htmlであればtxtやcsvと出力方法は同じです。 vba html 出力あたりで検索すればいろいろ出るでしょう。 下記のサイトを一度見てみては? https://tonari-it.com/vba-html-table/ 質問内容がふわっとしすぎています。 htmlのバージョンもなければ作成したコードもないので何をアドバイスすればいいのかわからない状態です。
yoshino_hanako

2021/01/26 04:28 編集

参考サイトありがとうございます。 ふわっとしていますか?自分で試したコードを書けという事でしょうか。 であればこちらで質問するのは私には早すぎたかもしれませんね。 ご迷惑おかけすると思うのでmsuguru様はこれ以上は大丈夫です、ありがとうございました。
tomy-c

2021/01/26 04:45

https://teratail.com/help/question-tips 何事も初めて触るのなら最低限の説明くらいは見ましょう。 回答者さん達は適当に触っても反応する機械じゃなくて、感情を持ち、思考して、反応する人間です。 ヘルプのトップにある[teratailについて]を見てからあなた自身の質問内容を見直してみて下さい。 プログラムのイメージすら沸かないふわっとした質問ならQiitaの方がいいかもしれません。(teratailは最低限自身が組んだコードを元に詰まったところを聞く形を要求するので。) https://help.qiita.com/ja/articles/qiita-question-guideline
yoshino_hanako

2021/01/26 05:01

お答え以外は結構です。ありがとうございました。
退会済みユーザー

退会済みユーザー

2021/01/26 05:15

tomy-c様 コメントありがとうございます。 その一言で気持ちが楽になります。
yoshino_hanako

2021/01/26 05:27

もちろん質問者も人間です。 「出来るか出来ないかでいえば出来ますね」のひとことは、あまりにも嫌味でないでしょうか…( ;∀;) 素晴らしい知識をお持ちの方が、なんのためにそのような質問者を見下すためだけのような回答にもならない回答を、わざわざお時間割いていただいてまでいただいたのか理解しかねます。 私の質問の仕方も悪かったと思いますが、それならそれでわざわざ嫌味を書き込みに来ず放っておいてほしかったですね。
K_3578

2021/01/26 05:47

横からで申し訳ありませんが、自分も色んな事をteratailで質問し、回答頂いている立場から少し意見を。 >「出来るか出来ないかでいえば出来ますね」のひとことは、 自分もこのように回答頂いたことはありますが、最初は嫌味だと思いましたが時間を空けて から自分の質問を見直して見るとコードを実際に書いている自分では理解出来ても、 質問文のみを見て回答するにはあまりに情報が不足していました。 自分はVBAはからっきしですが、質問文を見てみてもさすがに質問者様の 期待した回答を得るには不十分な内容かと思います。 msuguru様も仰られているようにせめて作成したコードは必要かと思いますので今一度 質問を追記するべきかと。 >私の質問の仕方も悪かったと思いますが、 自分の非を認められるのは良いことだと思うので、あくまで時間を使ってくださる 回答者様にも敬意を払いながらteratailのルールに則った質問をしてみてはどうでしょうか。 横入りした上に解決策ではなく、個人的な意見を長文で書いてしまった事は お詫び申し上げます。
退会済みユーザー

退会済みユーザー

2021/01/26 06:18

>「出来るか出来ないかでいえば出来ますね」のひとことは、あまりにも嫌味でないでしょうか…( ;∀;) 情報が不足しているのなら情報が足りませんと伝えるべきでした。 これは私の配慮不足です。 申し訳ありません。 質問が修正されているのを確認したので回答を追記しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問