EXCEL超初心者マクロ(9)- HTMLを書いてみる -

連続したHTMLや決まった形のHTMLを定期的に更新したいときありませんか?
そんなのも、EXCELのマクロでできちゃいます。
※自分はHTMLあまり強くないので細かい突込みはご勘弁下さい。

サンプル:
Sample_11V1.xlsm

例として、こんな依頼がきたとします。
商品一覧の、商品コード、商品名、価格、リンク、etc
を100件分、HTML形式で作成してください。
形式はテーブルで…
スパンは、週1回でお願いします。

手馴れた人や、簡単な構造だったら、EXCELの機能や、エディター等でできちゃうんですが、慣れない人にはちょっとつらいですね。
当然作成するHTMLの構造等によってはできないものもあります。万能というわけでもありません。

例えば、こんな感じのHTMLを書きたい時、手動で作成すると100個はしんどいですよね。(例は10個です)
※例文は楽天の商品にリンクをしています。

テキストで見ると(ちょっと雑ですがご勘弁を)

<h3>2018年11月コミックス。</h3>
・注意1
・注意2
・注意3
<table style="font-size: 10pt; line-height: 200%;" border="2"><tbody>
<tr><th scope="col">出版社</th><th colspan="3" scope="col">書名</th><th scope="col">LINK</th></tr>
<tr><th scope="col">ISBN</th><th scope="col">シリーズ</th><th scope="col">著者</th><th scope="col">予定日</th><th scope="col">予価</th></tr>
<tr bgcolor="honeydew">
<td>集英社</td>
<td colspan="3">青の祓魔師(22)</td>
<td><a href="http://books.rakuten.co.jp/rdt/item/?sid=213310&sno=ISBN:9784088815916" target="_rbooks">リンク</a></td>
</tr>
<tr>
<td>9784088815916</td>
<td>ジャンプコミックス</td>
<td>加藤和恵</td>
<td>11/2</td>
<td align="right">500</td>
</tr>
<tr bgcolor="honeydew">
<td>集英社</td>
<td colspan="3">地の底の魔法使い(2)</td>
<td><a href="http://books.rakuten.co.jp/rdt/item/?sid=213310&sno=ISBN:9784088815923" target="_rbooks">リンク</a></td>
</tr>
<tr>
<td>9784088815923</td>
<td>ジャンプコミックス</td>
<td>平浜矢陸</td>
<td>11/2</td>
<td align="right">500</td>
</tr>
<tr bgcolor="honeydew">
<td>集英社</td>
<td colspan="3">地獄楽(4)</td>
<td><a href="http://books.rakuten.co.jp/rdt/item/?sid=213310&sno=ISBN:9784088816012" target="_rbooks">リンク</a></td>
</tr>
<tr>
<td>9784088816012</td>
<td>ジャンプコミックス</td>
<td>賀来ゆうじ</td>
<td>11/2</td>
<td align="right">500</td>
</tr>
<tr bgcolor="honeydew">
<td>集英社</td>
<td colspan="3">この先、どぶ沼注意</td>
<td><a href="http://books.rakuten.co.jp/rdt/item/?sid=213310&sno=ISBN:9784088816197" target="_rbooks">リンク</a></td>
</tr>
<tr>
<td>9784088816197</td>
<td>ジャンプコミックス</td>
<td>星カビ</td>
<td>11/2</td>
<td align="right">500</td>
</tr>
<tr bgcolor="honeydew">
<td>集英社</td>
<td colspan="3">鬼滅の刃(13)</td>
<td><a href="http://books.rakuten.co.jp/rdt/item/?sid=213310&sno=ISBN:9784088816265" target="_rbooks">リンク</a></td>
</tr>
<tr>
<td>9784088816265</td>
<td>ジャンプコミックス</td>
<td>吾峠呼世晴</td>
<td>11/2</td>
<td align="right">500</td>
</tr>
<tr bgcolor="honeydew">
<td>集英社</td>
<td colspan="3">怪物事変(6)</td>
<td><a href="http://books.rakuten.co.jp/rdt/item/?sid=213310&sno=ISBN:9784088816289" target="_rbooks">リンク</a></td>
</tr>
<tr>
<td>9784088816289</td>
<td>ジャンプコミックス</td>
<td>藍本松</td>
<td>11/2</td>
<td align="right">500</td>
</tr>
<tr bgcolor="honeydew">
<td>集英社</td>
<td colspan="3">ド級編隊エグゼロス(5)</td>
<td><a href="http://books.rakuten.co.jp/rdt/item/?sid=213310&sno=ISBN:9784088816319" target="_rbooks">リンク</a></td>
</tr>
<tr>
<td>9784088816319</td>
<td>ジャンプコミックス</td>
<td>きただりょうま</td>
<td>11/2</td>
<td align="right">500</td>
</tr>
<tr bgcolor="honeydew">
<td>集英社</td>
<td colspan="3">星の王子さま(3)</td>
<td><a href="http://books.rakuten.co.jp/rdt/item/?sid=213310&sno=ISBN:9784088816326" target="_rbooks">リンク</a></td>
</tr>
<tr>
<td>9784088816326</td>
<td>ジャンプコミックス</td>
<td>漫☆画太郎</td>
<td>11/2</td>
<td align="right">500</td>
</tr>
<tr bgcolor="honeydew">
<td>集英社</td>
<td colspan="3">ROUTE END(6)</td>
<td><a href="http://books.rakuten.co.jp/rdt/item/?sid=213310&sno=ISBN:9784088816333" target="_rbooks">リンク</a></td>
</tr>
<tr>
<td>9784088816333</td>
<td>ジャンプコミックス</td>
<td>中川海二</td>
<td>11/2</td>
<td align="right">500</td>
</tr>
</tbody></table>

こんなときは1行ずつをEXCELに書いて、可変部分に仮の文字を詰めて、Replaceで置き換えると簡単にできます。
直接書き込むと、ダブルコーテーション等マクロで扱えない文字列があるので、ちょっと複雑になります。

以下が、1行分のHTMLです。

<tr bgcolor="honeydew">
<td>●●●●●●●1</td>
<td colspan="3">●●●●●●●2</td>
<td><a href="http://books.rakuten.co.jp/rdt/item/?sid=213310&sno=ISBN:▲▲▲▲▲▲" target="_rbooks">リンク</a></td>
</tr>
<tr>
<td>●●●●●●●3</td>
<td>●●●●●●●4</td>
<td>●●●●●●●5</td>
<td>●●●●●●●6</td>
<td align="right">●●●●●●●7</td>
</tr>

HTMLINシートを1行づつ処理して、HTMLOUTに上記のHTMLの文字列を置き換えていく。

詳細はSAMPLEをご確認ください。

SAMPLE付

Posted by master