• ベストアンサー

HTMLのタグを出力 マクロ

A1、B1、C1…にテキストを入れます。 A1セル スズキ B1セル タロウ C1セル 東京  ・  ・ HTML出力 A1セル→<div>スズキ</div> B1セル→<p>タロウ</p> Cセル→<span>東京</span> <div>スズキ</div> <p>タロウ</p> <span>東京</span> それを行の数値が入ってないセルまで繰り返しってのをやりたいのですが、どうしたら良いでしょうか? 宜しくお願いします。

  • nkmyr
  • お礼率67% (403/600)

質問者が選んだベストアンサー

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (454/690)
回答No.1

こんなコードはいかがでしょうか。 Sub convertHTML()  Dim ws As Worksheet  Dim htmlFile As String  Dim i As Long  Dim LineData As String    Set ws = ThisWorkbook.Worksheets(1)  htmlFile = ActiveWorkbook.Path & "\Sample.html"  Open htmlFile For Output As #1    i = 1  Do While ws.Cells(i, 1).Value <> ""   LineData = "<div>" & ws.Cells(i, 1).Value & "</div>" & vbCrLf   LineData = LineData & "<p>" & ws.Cells(i, 2).Value & "</p>" & vbCrLf   LineData = LineData & "<span>" & ws.Cells(i, 3).Value & "</span>" & vbCrLf   Print #1, LineData   i = i + 1  Loop  Close #1  MsgBox htmlFile & "に書き出しました" End Sub

nkmyr
質問者

お礼

コメントありがとうございます。 すごくシンプルなプログラムです。勉強になりました。

関連するQ&A

  • マクロ ランキングの表を作成し、HTML出力 

    A1、B1、C1…にテキストを入れます。 A1 スペシャル B1 (空白) C1 (空白) A2 スズキ B2 2000 C2 1000 A3 タナカ B3 1000 C3 800  ・  ・ 下記のプログラムはセルに空白があるとそこでループが止まってしまいます。 セルの空白で止まるのではなく、最終尾の行に全て空白があると判断した時点でループをストップしたいのです。 上記ではB1とC1に空白があり、B1で止まってしまいます。 アドバイスをお願いします。 Sub convertHTML()  Dim ws As Worksheet  Dim htmlFile As String  Dim i As Long  Dim LineData As String    Set ws = ThisWorkbook.Worksheets(1)  htmlFile = ActiveWorkbook.Path & "\Sample.html"  Open htmlFile For Output As #1    i = 1  Do While ws.Cells(i, 1).Value <> ""   LineData = "<div>" & ws.Cells(i, 1).Value & "</div>" & vbCrLf   LineData = LineData & "<p>" & ws.Cells(i, 2).Value & "</p>" & vbCrLf   LineData = LineData & "<span>" & ws.Cells(i, 3).Value & "</span>" & vbCrLf   Print #1, LineData   i = i + 1  Loop  Close #1  MsgBox htmlFile & "に書き出しました" End Sub

  • HTMLにエクセルの情報を配置したい

    エクセルについて教えてください。 エクセルのA列に商品名、B列に画像、C列に商品の説明文、D列に商品URLを記入して、これが30商品=30行になっているとします。そして、このエクセルの文字列をHTMLの特定の場所に配置したいのです。 HTMLは、 <div class="block"> <img src="images/[B1]" alt="[A1]" /><br /> <a href="[D1]">[A1]</a><br /> <p>[C1]</p> </div> <div class="block2"> <ul> <li><a href="[D2]">[A2}</a></li> <li><a href="[D3]">[A3}</a></li> </div> などのように、あらかじめエクセルの情報を入れたい場所をテンプレート化して、[A1}とあればエクセルのA1の文字列を、[B1]とあれば、エクセルのB1のセルの文字列が入るようなイメージなのですが、こんなことってできるものなのでしょうか? 似たようなものにBP Tranというフリーソフトがあり、HTMLファイルとCSVファイルを選択すると、自動でHTMLファイルを任意の名前で出力してくれるものがありまして、これのような感じなのですが・・・。 どこまでが出来て、どこまでが出来ないのか、また出来るとすればどのような方法があるのかが、分からず検索がうまくできない状況で困っています。 詳しい方がいらっしゃいましたら、ご教授宜しくお願いします。

  • Another HTML-lint gatewayでHTML文書の文法

    Another HTML-lint gatewayでHTML文書の文法をチェックしましたが、次の項目 の修正方法がわかりません。 HTMLヴァージョンは「XHTML1.0 Transitional」(DreamweaverCS5) (1)<a> と </a> の間が空です。 <p><span class="syougyou"><span class="syuuhenn"><img src="image/otaxtitlle4.jpg " width="158" height="27" alt="周辺業務" /></span></span> <a name="risuku " id="risuku"></a>     </p> (2)<div> と </div> の間が空です。  下記の本サイトTOPpageの234,242行 <参考URL> http://openlab.ring.gr.jp/k16/htmllint/htmllint.html http://otax81.com/

  • マクロ HTMLタグのクラス名を入れたらエラー

    下記のプログラムはセルに文字を入れてHTML化するものです。 HTMLタグにクラス名を入れると「中断モードでコードを実行することはできません」とエラーメッセージが出ます。 LineData = "<div class=“sample”>” & ws.Cells(i, 1).Value & "</div>" & vbCrLf クラス名の「” ”」が問題だと思いますが、どうしたら良いでしょうか? 宜しくお願いします。 Sub convertHTML()  Dim ws As Worksheet  Dim htmlFile As String  Dim i As Long  Dim LineData As String    Set ws = ThisWorkbook.Worksheets(1)  htmlFile = ActiveWorkbook.Path & "\Sample.html"  Open htmlFile For Output As #1    i = 1  Do While ws.Cells(i, 1).Value <> ""   LineData = "<div id=“sample”>” & ws.Cells(i, 1).Value & "</div>" & vbCrLf   LineData = LineData & "<p>" & ws.Cells(i, 2).Value & "</p>" & vbCrLf   LineData = LineData & "<span>" & ws.Cells(i, 3).Value & "</span>" & vbCrLf   Print #1, LineData   i = i + 1  Loop  Close #1  MsgBox htmlFile & "に書き出しました" End Sub

  • マクロCSV出力

    Sheet1に入力されている値をCSVファイルに出力したいと思っております。 但し、特定のセルだけを取得して、1つのファイルに出力したいと思っています。 (1)D2~G2に入力されている値を取得 (2)E4~E10までと、E4~E10の最終列までの値を取得 (3)B11の値を取得 (4)A13~A列の最終行まで、A13~A列の最終行の最終列までの値を取得 (1)、(2)、(3)、(4)の値を取得して、1つのCSVファイルに出力するプログラムを作成したいと思っております。 (1)は1行目に出力 (2)は2行目~8行目に出力 (3)は9行目に出力 (4)は10行目以降に出力 出力の形式は ”TEST”,” ”,”SMP”のようにダブルクォーテーションで値を囲って出力したいと思っています。 値が入っていないセルは” ”,としたいと思っております。 サンプルを作成して頂けないでしょうか。

  • リロードせずにHTMLタグ出力(innerHTML以外の方法で)

    初めまして。 下記の条件で、HTMLをリロードせずにHTMLタグを出力する方法をご存知の方がいらっしゃれば、教えていただけないでしょうか。簡単に言うと、innerHTMLのようにHTMLをリロードせずに動的に出力する方法が知りたいのです。(innerHTMLはこちらの事情で使えません) ・IE6限定でよい ・JavaScript,CSS,DOMはOK ・DynamicHTMLはNG(innerHTML等) ・一度HTMLを読み込んだ後、動的にHTMLタグを出力する ・出力する文字列の中にタグがあり、これが有効になるようにしたい (例:たとえば、動的にHTNLタグである<b>hogehoge</b>とかを出力して、ブラウザ上にはhogehogeという文字列が太文字で表示されるようにしたいのです) ※試してみたがだめだった方法 1.document.write()による出力 ⇒これをするとページがリロードされてしまうので条件にあわず 2.getElementById('hoge')で、<div id='hoge'>&nbsp;</div>のnodeValueに文字列を代入して出力 ⇒これをしても、HTMLタグではなく文字列としてHTMLタグが出力される。 よろしくお願いします!

  • タグを切り替えるJavaScriptについて

    下記のurlを参考にして、タグを切り替えるJavaScriptを使いレイアウトをしています。 http://archiva.jp/web/javascript/tab-menu.html やりたいことは各内容をIDセレクタでくくりたいのです。 <div id="page1">  <h2>page1</h2>  <p>パンクズ</p>  <div class="nav">   <ul id="tab">    <li><a href="#page1"><span>page1を選択中</span></a></li>    <li><a href="#page2"><span>page2</span></a></li>    <li><a href="#page3"><span>pave3</span></a></li>   </ul>  </div>  <p>段落1</p> </div> <div id="page2">  <h2>page2</h2>  <p>パンクズ</p>  <div class="nav">   <ul id="tab2">    <li><a href="#page1"><span>page1</span></a></li>    <li><a href="#page2"><span>page2を選択中</span></a></li>    <li><a href="#page3"><span>pave3</span></a></li>   </ul>  </div>  <p>段落1</p> </div> ...page3 このようにやりたいのですが、JavaScriptがIDセレクタの"tab"にしか対応していないため、他のページにいくとクリックが効かなくなってしまいます。 idセレクタをclassセレクタに設定し直してもidセレクタにしか対応していないため効きません。 tag2とtab3に対応させるためにはどのようにすればいいでしょうか。 よろしくお願いします。

  • エクセルのマクロの事で質問です。

    エクセルのマクロの事で質問します。 エクセルにはセルA~Mまでデータが入っています。(件数的にはかなりの量です) そこでマクロを使ってセルN内に以下のようなHTMLを入れたいです。 <div align="center"><b>【Dのセル】</b></div> <div align="center"><a rel="nofollow" href="【Hのセル】"><img src="【Iのセル】" border="0" alt="【Cのセル】"></a></div> <div align="center"><a rel="nofollow" href="【Hのセル】">【Cのセル】</a></div> 【Eのセル】 【Fのセル】 <!--【Aのセル】【Bのセル】--> 以前いろいろと教えてもらったのですが、まだ自分では解決できそうにありません。 どなたか、ご指導のほどよろしくお願いします。

  • HTMLのタグの入ったセルを結合したい

    ヤフオクやイーベイの出品管理をEXCELで行っており、商品説明や商品画像URLを 各セルに保存しています。 別途用意したHTMLのフォーマットにそれぞれを埋め込みたいです。 商品数が多いので、コピペではとても出来ません。 現状、そのまま下記のとおりセルの中身を結合するとダブルクオーテーションが現状の 倍くらいの数になってしまい、HTMLのタグとして機能しません。 =A1(HTMLのタグ)&B1(画像URL)&C1(HTMLのタグ) A1のセル <body> <div style="WIDTH: 100%; TEXT-ALIGN: center"> <div id="wrapper" style="FONT-SIZE: 23px; FONT-FAMILY: Arial, Helvetica, sans-serif; WIDTH: 860px; COLOR: #000; TEXT-ALIGN: left; MARGIN: 0px auto"> <h1 style="FONT-SIZE: 38px; HEIGHT: 60px; WIDTH: 850px; COLOR: #ffffff; PADDING-LEFT: 10px; MARGIN: 0px; LINE-HEIGHT: 60px; BACKGROUND-COLOR: #336600">Picture</h1> <img src=" B1のセル 画像URL C1のセル "> <div class="sub_tit" style="FONT-SIZE: 35px; HEIGHT: 40px; WIDTH: 850px; FONT-WEIGHT: bold; COLOR: #ffffff; PADDING-LEFT: 10px; LINE-HEIGHT: 40px; BACKGROUND-COLOR: #336600"> Description </div><br><font size="5">

  • マクロでセル内の文章を一括HTMLタグ付けをしたい

    過去に同じような質問を差し上げているのですが、今回は若干の仕様変更のため説明も似たものになってます。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1010731423... 前回ご回答いただいたVBAを改修していただいたら分かりやすいでしょうか。。? ------------------------↓セル内 ダミーテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト ◆ダミータイトル ダミーテキストテキストテキストテキストテキストテキスト ◆ダミータイトル ダミーテキストテキストテキストテキストテキストダミーテキストテキストテキストテキストテキストダミーテキストテキストテキストテキストテキストダミーテキストテキストテキストテキストテキスト ダミーテキストテキストテキストテキストテキストダミーテキストテキストテキストテキストテキスト ------------------------↑セル内 ※テキストはダミーです。本来は日本語文章が入ります。 ※上記例は小見出しの先頭に ◆ が書かれています。 ※セル内の一番上には1行綴りの文章があります。 ※タイトル(上記はダミータイトルと書かれた部分)の上には空白改行が1行あります。 ※タイトル(上記はダミータイトルと書かれた部分)の下には1行綴りの文章があります。 ※改行が2つ連続すれば、前後の段落を<p>タグで囲い、改行が1つの場合は<br />タグを挿入したいです。(下記参照) 今回も実行内容はクリップボードに保存したいです。 今回は上記の例を、以下のようにHTMLタグ付けしたいと思っております。 ----------------------------- <div class="cntt"> <p>ダミーテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト</p> <h3>◆ダミータイトル</h3> <p>ダミーテキストテキストテキストテキストテキストテキスト</p> <h3>◆ダミータイトル</h3> <p>ダミーテキストテキストテキストテキストテキストダミーテキストテキストテキストテキストテキストダミーテキストテキストテキストテキストテキストダミーテキストテキストテキストテキストテキスト<br /> ダミーテキストテキストテキストテキストテキストダミーテキストテキストテキストテキストテキスト</p> </div> ----------------------------- Windows7 , Excel2007 , Dreamweaver CS5.5を使用しています。 不明点がございましたらご連絡ください。 よろしくお願いいたします。

専門家に質問してみよう