HTMLファイルの雛形をUTF-8（BOMなし）で作成しVSCodeで開くVBScript

[FsoModule](https://qiita.com/istoyo/items/8147f25c0a304adb2784)
[WShllModule](https://qiita.com/istoyo/items/72975d8a8bc8e8a3d35d)
[DateModule](https://qiita.com/istoyo/items/64211128ab17093ec895)

```vb:CreateHtmlFormat.vbs
'--- UTF-8出力の流れ ---
' ストリームを開く
' ストリームに文字列を書き込む
' ストリームの位置を先頭に戻す（先頭にないとTypeプロパティを変更できないため）
' バイナリモードに変える
'（BOMを取り除く）
    ' ストリームの位置をBOMの後ろに3バイト移動する
    ' 現在の位置から最後までを読み取る（ここでBOMなしのバイナリデータが取得できる）
    ' 読み取ったデータをストリームの先頭から書き込む
    ' 書き込んだデータにはBOMがないので、ストリームの末尾3バイトがゴミとして残っている状態。
    ' 現在の位置をストリームの末尾に設定し、それより後ろ（つまり末尾3バイト）のデータを切り捨てる
' ファイルに保存する
' ストリームを閉じる
```
```vb:
Option Explicit

Include "FsoModule"
Include "WShllModule"
Include "DateModule"

Const adTypeBinary = 1  '// バイナリデータ
Const adTypeText   = 2  '// テキストデータ

Dim foldPath, fileName, filePath
foldPath = MakeFolder(GetBuildPath(Array(EnvStr("%USERPROFILE%"), "Documents", "Programming", "HTML")))
fileName = DateFormat(Now, "yyyy-mm-dd［hhnnss］") & ".html"
filePath = Fso.BuildPath(foldPath, fileName)

With CreateObject("ADODB.Stream")
    .Type = adTypeText
    .Charset = "UTF-8"
    .Open

    .WriteText GetHtmlStr
    .Position = 0
    .Type = adTypeBinary
    .Position = 3
    
    Dim buf: buf = .Read
    .Position = 0
    .Write buf
    .SetEOS
    .SaveToFile filePath, 1
    .Close
End With

'// VSCodeで開く
WShll.Run "cmd /c code " & filePath, 0, True  
```
```vb:
'// HTMLコードを返す

Function GetHtmlStr()

    Dim tb, J, htmlStr

    tb = "    "
    J  = vbCrLf

    htmlStr = htmlStr & "<!DOCTYPE html>" & J
    htmlStr = htmlStr & "<html lang=""ja"">" & J
    htmlStr = htmlStr & "<head>" & J
    htmlStr = htmlStr & tb & "<meta charset=""UTF-8"">" & J
    htmlStr = htmlStr & tb & "<meta name=""viewport"" content=""width=device-width, initial-scale=1.0"">" & J
    htmlStr = htmlStr & tb & "<style>" & J
    htmlStr = htmlStr & tb & tb & "body {" & J
    htmlStr = htmlStr & tb & tb & tb & "padding: 2em;" & J
    htmlStr = htmlStr & tb & tb & "}" & J & J

    htmlStr = htmlStr & tb & tb & "h2 {" & J
    htmlStr = htmlStr & tb & tb & tb & "padding-left: 0.3em;" & J
    htmlStr = htmlStr & tb & tb & tb & "background-color: rgb(200, 200, 200);" & J
    htmlStr = htmlStr & tb & tb & "}" & J
    htmlStr = htmlStr & tb & "</style>" & J
    htmlStr = htmlStr & tb & "<script>" & J & J

    htmlStr = htmlStr & tb & "</script>" & J
    htmlStr = htmlStr & tb & "<title>Document</title>" & J
    htmlStr = htmlStr & "</head>" & J
    htmlStr = htmlStr & "<body>" & J
    htmlStr = htmlStr & tb & "<h2></h2>" & J
    htmlStr = htmlStr & tb & J
    htmlStr = htmlStr & "</body>" & J
    htmlStr = htmlStr & "</html>" & J

    GetHtmlStr = htmlStr

End Function   
```
```vb:
'// 外部関数ライブラリ（VBSファイル）の読み込み

Function Include(ByVal mod_name)

    Dim modFolderPath

    With CreateObject("Scripting.FileSystemObject")
        modFolderPath = .BuildPath(.GetParentFolderName(WScript.ScriptFullName), "Module")
        With .OpenTextFile(.BuildPath(modFolderPath, mod_name & ".vbs"))
            ExecuteGlobal .ReadAll
            .Close
        End With
    End With

End Function
```
---
＜参考サイト＞
[VBScript でのファイル入出力（UTF-8編）](https://topview.jp/t6346edf23fdbf-6475)