- ベストアンサー
VBAで特定のシートに同じ処理をさせる方法
- VBAを使用して特定のシートに同じ処理をさせる方法について説明します。
- 上記のプログラムは、ランキングをHTML形式に変換するものです。
- シート名が「スペシャルクラス」「オープンクラス」「ビギナークラス」の3つのシートで同じ処理を実行したい場合、以下の手順を実行します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じでしょうか。テスト未実施です。 Sub Sample1() Dim shtNM As Variant shtNM = Split("スペシャルクラス,オープンクラス,ビギナークラス", ",") Dim F As Integer Dim ws As Worksheet Dim i As Long Dim LineData As String Dim Target As String For F = 0 To UBound(shtNM) Target = ActiveWorkbook.Path & "\" & shtNM(F) & ".html" Set ws = ThisWorkbook.Worksheets(shtNM(F)) ws.Activate i = 1 With CreateObject("ADODB.Stream") .Charset = "UTF-8" .Open LineData = "" Do While Not (ws.Cells(i, 1).Value = "" And ws.Cells(i, 2).Value = "" And ws.Cells(i, 3).Value = "") LineData = 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 i = i + 1 Loop .WriteText LineData, 1 .SaveToFile Target, 2 .Close End With 'MsgBox Target & "に書き出しました" Next End Sub
お礼
コメントをありがとうございます。 うまくできました。