[[20200708143757]] 『html自動生成マクロ』(ゆっか) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『html自動生成マクロ』(ゆっか)

ご指導、ご教授のほど宜しくお願い致します。

エクセルやメモ帳などでhtml内の作成したい一定の箇所を用意したデータマスタから
複数の項目をくっつけて自動生成ができないでしょうか?

web上からphp?などで生成されているのはみたことあるのですが
エクセルなどのアプリケーションからもできれば作ってみたいです。

データマスタのイメージは
A列:品番
B列:名前
C列:価格
D列:半角英小文字のみ入力

こちらのマスタから
html\A1\html
html\B1\html
....

html\A2\html
html\B2\html

と一行目から順番にというのをイメージしております。

※上記のhtmlというのは
<div class="newitemlist">
だったり
<a href="https://〇〇A1.html target="_top">
<div class="name">B1</div>

などaタグやdivなどを略してhtmlと略してお伝えさせて頂きました。

生成したものがエクセルだとセル内に多数の文字数が入ってしまうため、
.htmlのファイル名で保存するところまでプログラムとうでできると
良いのですが。。

何卒ご教授のほど宜しくお願い致します。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


もちろん、マクロでも可能ですよ。 HTMLファイルって、単なるテキストファイルでしかないので、TABLEタグ等、適切なタグを文字列として編集し、テキストファイルとして保存するだけです。
 Sub test()
    Const cHTML = "c:\tmp\test.html"
    Dim F1 As Integer

    F1 = FreeFile()
    Open cHTML For Output As #F1
    Print #F1, "<html><body>"
    Print #F1, "<a href=""https://www.excel.studio-kazu.jp/"">エクセルの学校</a>"
    Print #F1, "</body></html>"
    Close #F1

    With CreateObject("InternetExplorer.application")
        .Visible = True
        .Navigate cHTML
    End With
 End Sub
(???) 2020/07/08(水) 15:43

コメント頂いたとおりかと思います。

追加するとすれば、質問者さんはこんな方式をイメージしているのかもしれません。
・HTMLのテンプレート文字列を作り、
・そのなかに特殊文字列(例えば$$1 とか、$$2といったもの)を埋め込みます。
・外から、その特殊文字列を、セルの値(A1,A2セルなど)で置換するというものです。
 
置換そのものは、Replace関数を使えばよいので、さほど負荷はかからないと思います。
(例えば、Rubyなんかだと、ERBと言ったライブラリがそれに相当しますが、
 VBAの世界では、特段有名なものは無いと思います。
 正直言って、ExcelVBAよりも格段に高機能な、テキスト処理に向いた言語が別にあるので、
 VBAが期待されないのは致し方ないと思います。
 しかし、必要なら作れば良いだけの話かと思います。)

気をつけるのは、<>&と言った文字列のエスケープ処理とかそのあたりでしょう。

(γ) 2020/07/08(水) 17:53


\A1は項目の品番、\A2は品番の名称ということでしょうか。
データマスタの表をHTMLファイルにしたいということでしょうか。
HTMLファイルにした後それをどのようにして使用するのですか。
(くかもり) 2020/07/08(水) 20:07

たくさんのご回答誠に有難うございます。

くかもりさん htmlファイル内の一部のdivタグ内に掲載したい商品が複数定期的に更新したいため、
A列に品番
B列に名称
c列に価格
d列...
とここは手動で作成するのでそのマスタをもとに
最初のご質問で記載した通りマスタから読み取る値や文字列以外の部分はテンプレートとして

<a href="https://〇〇A1.html target="_top">
<div class="name">B1</div>
と用意するというイメージをしております。

生成したhtmlは更新したい別htmlファイルにコピペ致します。

一つ一つhtml内の価格や品番などをメモ帳等で作成するのは数が多いので効率が
よくなくプログラム化できたらと思いご相談させて頂きました。

そもそも yさんがいうとおりVBAではなく他のプログラムの方がよいのでしょうか。。

ご意見、ご教授のほど宜しくお願い致します。
(ゆっか) 2020/07/09(木) 08:48


理解できません。
〇〇A1.html の中身はどうなっているのだろう。その他を含めて。
エクセルからの呼び出しはどうするのだろうか。

(くかもり) 2020/07/09(木) 10:24


表にしたHTMLを、リアルタイムに動的に生成したいのであれば、Excelは向きません。 Excelマクロでできるのは、今ある情報を元に、静的HTMLを作成するだけであり、情報が変化した場合は、またマクロを実行して、HTMLを作り直さないといけないですから。
(JavaScriptやphpのコードを埋め込んだ、動的HTMLを出力する事もできますが、だったら最初から普通のエディタで書けばいいだけの話)

公開するHTMLは、頻繁に更新するものなのでしょうか? それとも、月一とか、低い更新頻度なのでしょうか? そして、表の元となるデータは、何らかのRDB上にあるのか、Excelシート上にあるのか。 そういう環境構成や、HTMLを見るのは誰なのか等、貴方しか判らない情報が多すぎて、Excelでやるべきかどうかは、回答者には判断できませんよ。 元データはExcelシート上にしかなくて、更新の頻度は低いから静的HTMLで良い、という場合なら、Excelマクロで解決しても良いと思いますし、他の高級言語でも同じ事ができます。

そして、HTMLの例を挙げるのであれば、イメージで語らず、そのままコピペしてHTMLファイルとして保存しブラウザで開けるような、具体的なものでお願いします。(可変部分は何らかの置き換え用文字列でも、実際の文字列に近いものでも、どちらでもOK)
(???) 2020/07/09(木) 10:47


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.