こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

マクロ テーブルタグをリストタグに書き直したい

下記のVBAコードは表を囲むように選択し、マクロを実行することでテーブルタグのHTML化ができるものです。


1 佐藤 東京
2 山田 神奈川

マクロ実行結果
<table>
 <tr><td>1</td><td>佐藤</td><td>東京</td></tr>
 <tr><td>2</td><td>山田</td><td>神奈川</td></tr>
</table>

これをリストに書き換えたいです。
<ul>
<li>1</li><li>佐藤</li><li>東京</li>
</ul>
<ul>
<li>2</li><li>山田</li><li>神奈川</li>
</ul>

どうしたら良いでしょうか?
宜しくお願いします。

Sub convertHTML()

Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(1)

Dim htmlFile As String
htmlFile = ActiveWorkbook.Path & "\table.html"

Open htmlFile For Output As #1

Dim i, j As Long
i = 1

Print #1, "<table>"

Do While ws.Cells(i, 1).Value <> ""

Print #1, vbTab & "<tr>";

j = 1
Do While ws.Cells(i, j).Value <> ""

Print #1, "<td>" & ws.Cells(i, j).Value & "</td>";
j = j + 1

Loop

Print #1, "</tr>" & vbCr;
i = i + 1

Loop

Print #1, "</table>"

Close #1

MsgBox htmlFile & "に書き出しました"

End Sub

投稿日時 - 2019-01-15 10:37:05

QNo.9577979

困ってます

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

改行は vbCrLf でいいでしょうか

Sub convertHTML2()

 Dim ws As Worksheet
 Dim htmlFile As String
 Dim i, j As Long

 Set ws = ThisWorkbook.Worksheets(1)
 htmlFile = ActiveWorkbook.Path & "\table.html"

 Open htmlFile For Output As #1

 i = 1

 Do While ws.Cells(i, 1).Value <> ""
  Print #1, "<ul>" & vbCrLf;
  j = 1
  
  Do While ws.Cells(i, j).Value <> ""
   Print #1, "<li>" & ws.Cells(i, j).Value & "</li>";
   j = j + 1
  Loop

  Print #1, vbCrLf & "</ul>" & vbCrLf;
  i = i + 1

 Loop
 Close #1
 MsgBox htmlFile & "に書き出しました"

End Sub

投稿日時 - 2019-01-15 20:10:42

お礼

ありがとうございます。
お陰さまでイメージ通りできました。
テーブル化のコードの違い、改行のvbCrLfの検証をしながら勉強させて頂きます。 

投稿日時 - 2019-01-16 09:16:10

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問