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

解決済みの質問

マクロ 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

投稿日時 - 2019-11-14 11:21:26

QNo.9678791

困ってます

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

"の中に"がある場合""と連続して
LineData = "<div id=""sample"">" & ws.Cells(i, 1).Value & "</div>" & vbCrLf
にしてください。

投稿日時 - 2019-11-14 11:41:38

お礼

コメントありがとうございます。

LineData = LineData & "<tr><td class=“”athlete-rank stat””>” & ws.Cells(i, 1).Value & "</td><td><div class=“”avatar avatar--system””><div class=“”avatar-image””> <img> <span class=“”headshot-image”” style=“”background-image: url(images/.png);””></span> </div>" & vbCrLf
これに間違いはないでしょうか?
何故か2回出てしまいます。

スペシャル
スペシャル←何故か2回出てしまう
スズキ 2000 1000
タナカ 1000 800

投稿日時 - 2019-11-14 13:29:36

ANo.2

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

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

回答(3)

ANo.3

LineData = "<div id=""sample"">" & ws.Cells(i, 1).Value & "</div>" & vbCrLf
でしたが
LineData = LineData & "<tr><td class=“”athlete-rank stat””>” & ws.Cells(i, 1).Value &以下略
LineData & が追加になっていますが必要なのでしょうか?

投稿日時 - 2019-11-14 14:00:49

お礼

LineData & が余計でしたか。
おかげさまで2回でなくなりました。
ありがとうございました。

投稿日時 - 2019-11-14 14:24:50

んま質問者さんも気が付いている通りですね。
"<div id=“sample”>”
これは、
"<div id=“ + sample + ”>”
という3ブロックの文字に見えていますので。
エスケープ処理が必要ですね。
https://dobon.net/vb/dotnet/string/doublequotation.html

今回だけは、手抜きして
id=sample(ダブルクオート省略)だけでも
手っ取り早いかと。

投稿日時 - 2019-11-14 11:38:59

お礼

コメントありがとうございます。

LineData = LineData & "<tr><td class=“”athlete-rank stat””>” & ws.Cells(i, 1).Value & "</td><td><div class=“”avatar avatar--system””><div class=“”avatar-image””> <img> <span class=“”headshot-image”” style=“”background-image: url(images/.png);””></span> </div>" & vbCrLf
これに間違いはないでしょうか?
何故か2回出てしまいます。

スペシャル
スペシャル←何故か2回出てしまう
スズキ 2000 1000
タナカ 1000 800

投稿日時 - 2019-11-14 13:29:14

あなたにオススメの質問