最近、いつ泣きましたか?

昨日、マクロの事で質問した者です。
http://oshiete1.goo.ne.jp/qa4105086.html

そこで下記のソースを教えてもらいました。

Sub testo()
  
  If Not TypeOf Selection Is Range Then Exit Sub
  
  Dim i   As Long
  Dim sPrev As String
 
  Open "C:\test.tmp" For Output As #1
  
  ' // Output html
  sPrev = ""
For Row = 1 To 4
Print #1, Cells(Row, 1) & "...<a href=""" & Cells(Row, 2) & """target=""_blank"">続きはこちら</a><br>"
Next

  Close #1
  Shell "notepad.exe C:\test.tmp", vbNormalFocus
    
End Sub



質問ですが、この場合 For Row = 1 To 4 が入っていて4行目までしか表示されません。

そこでFor Row = 1 To 100 とかした場合、100行目までデータがあればいいのですが、ない場合は

説明文1...<a href="http://123.com"target="_blank">続きはこちら</a><br>
説明文2...<a href="http://123.com"target="_blank">続きはこちら</a><br>
...<a href=""target="_blank">続きはこちら</a><br>
...<a href=""target="_blank">続きはこちら</a><br>
...<a href=""target="_blank">続きはこちら</a><br>

このようになってしまいます。

データがない時は表示されないようにするにはどうすればいいのでしょうか?

A 回答 (2件)

For Row = 1 To 4





For Row = 1 To Cells(Rows.Count, 1).End(xlUp).Row

に変えてみるのはいかがでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございます。うまくできました!

お礼日時:2008/06/17 09:41

For Next ループの中で、Print の前にデータがあるかどうかをチェックし、無かったら Exit For で For Next ループを抜けると良いです。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!