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

解決済みの質問

マクロ ランキングの表を作成し、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

投稿日時 - 2019-11-14 09:56:30

QNo.9678758

困ってます

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

止まるのは、A列に空白(未入力)があるときですよね。


Do While ws.Cells(i, 1).Value <> ""
  ↓
Do While Not (ws.Cells(i, 1).Value = "" And ws.Cells(i, 2).Value = "" And ws.Cells(i, 3).Value = "")

投稿日時 - 2019-11-14 10:20:33

お礼

さっそくのコメントをありがとうございます。
おかげさまでうまくいきました。助かりました。

投稿日時 - 2019-11-14 10:46:24

ANo.1

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

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

回答(1)

あなたにオススメの質問