いつもお世話になります。
エクセルのデータをVBAを使って自動でhtmlファイルとして保存したいのですが、単発の変換は出来るのですが、一気にまとめて変換したく、どなたか助けれ頂ければと思い公開依頼をさせて頂きます。
◆やりたいこと
①エクセルの一つのシートにhtmlの各ページのデータが「列ごと」にそれぞれ入っています。
②各列のデータをそれぞれ別のhtmlとして出力したい。(SHIFT-JISではなく、UTF-8で出力)
③エクセルの列ごとのデータを一気にそれぞれ別のhtmlファイルとして出力したいのですが、この③の部分がうまく出来ていません。
②まではデータがあり、添付をいたします。③の部分のVBA作成について、ご協力を頂けませんでしょうか?
ご連絡を頂けましたら大変幸いです。
※すべてにお返事できないかもしれませんがご了承ください。
どうぞよろしくお願いいたします。
念のため上記の②までのVBA部分以下になります。添付エクセルは実際の参考データです。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
'テキストファイル出力
Public Sub TextOutput()
'ファイルを書き込みで開く(無ければ新規作成される、あれば上書き)
Open "a.html" For Output As #1
'開いたファイルに書き込む
Print #1, Cells(1, 1).Value
Print #1, Cells(2, 1).Value
Print #1, Cells(3, 1).Value
途中省略
Print #1, Cells(112, 1).Value
Print #1, Cells(113, 1).Value
Print #1, Cells(114, 1).Value
Print #1, Cells(115, 1).Value
Print #1, Cells(116, 1).Value
Print #1, Cells(117, 1).Value
'開いたファイルを閉じる
Close #1
End Sub
'Shift-JIS⇒UTF-8
Sub TEST1()
'変換したいテキストファイルのファイルパスを作成
Dim FilePath
FilePath = "a.html"
'Shift-JIS形式のテキストファイルを取得
a = ""
i = 0
Open FilePath For Input As #1
'テキストをすべて取得する
Do Until EOF(1)
Line Input #1, buf
a = a & buf & vbLf
Loop
Close #1
'Shift-JIS形式のファイル以外を取得した場合は終了
For i = 1 To Len(a)
If Asc(Mid(a, i, 1)) = -7295 Then Exit Sub
Next
'BOMを削除する
With CreateObject("ADODB.Stream")
.Charset = "UTF-8"
.Open
.WriteText a
.Position = 0
.Type = 1
.Position = 3
byteTmp = .Read
.Close
End With
'UTF-8でテキストファイルへ出力する
With CreateObject("ADODB.Stream")
.Charset = "UTF-8"
.LineSeparator = 10
.Type = 1
.Open
.Write byteTmp
.SetEOS
.SaveToFile FilePath, 2
.Close
End With
MsgBox "完了!"
End Sub
↑この作業をエクセルの「列ごとCells(1, 1)、Cells(1,2)」にそれぞれ別のhtmlファイルとして出力したいものです。