UTF-8ファイル保存のVBA
ExUtfSaveプロシージャの変更
・引数にsbufを追加し、変換元と変換先の両方で保存できるようにしています。
Private Sub ExUtfSave(sbuf As String, fname As String)
Dim tobj As Object
Dim i As Long
Dim byteTmp() As Byte
Set tobj = CreateObject("ADODB.Stream")
tobj.Charset = "UTF-8"
tobj.Open
tobj.Writetext sbuf
tobj.Position = 0
tobj.Type = 1
tobj.Position = 3
byteTmp = tobj.Read
tobj.Close
Set tobj = CreateObject("ADODB.Stream")
tobj.Charset = "UTF-8"
tobj.LineSeparator = 10
tobj.Type = 1
tobj.Open
tobj.Write byteTmp
tobj.SetEOS
tobj.SaveToFile fname, 2
tobj.Close
End Sub
canonicalを追加するVBA
ExUtfSaveプロシージャの変更
・上と同じく引数にsbufを追加し、変換元と変換先の両方でcanonicalを追加できるようにしています。
Private Sub MyAddUrl(sbuf As String, surl As String)
Dim ln1 As Long
Dim s1 As String
Dim s2 As String
Dim s3 As String
Dim lc As Long
ln1 = InStr(1, sbuf, "<head>", vbTextCompare)
If Mid(sbuf, ln1 + 6, 1) <> vbCr Then
s1 = Left(sbuf, ln1 + 5) & vbCr
s2 = Right(sbuf, Len(sbuf) - ln1 - 5)
Else
s1 = Left(sbuf, ln1 + 6)
s2 = Right(sbuf, Len(sbuf) - ln1 - 6)
End If
surl = Replace(surl, "\", "/", , , vbTextCompare)
s3 = "<link rel=""canonical"" href=""" & surl & """>"
sbuf = s1 & s3 & vbCr & s2
Debug.Print Left(sbuf, 1000)
End Sub
変換元のHTMLファイルです。
ampフォルダが追加されたURLが挿入されています。
作成したAMPファイルです。
元ファイルのURLが挿入されています。