• ベストアンサー

マクロの事で質問?

昨日、マクロの事で質問した者です。 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> このようになってしまいます。 データがない時は表示されないようにするにはどうすればいいのでしょうか?

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

  • ベストアンサー
  • izmlz
  • ベストアンサー率55% (67/120)
回答No.2

For Row = 1 To 4 を For Row = 1 To Cells(Rows.Count, 1).End(xlUp).Row に変えてみるのはいかがでしょうか?

siraku
質問者

お礼

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

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • higekuman
  • ベストアンサー率19% (195/979)
回答No.1

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

すると、全ての回答が全文表示されます。

関連するQ&A