VBA は fileSystemObject が Shift-JIS にしか対応していないので、うごご・・・ってなった。
代わりに ADODB.Stream オブジェクトを使うと文字コードを指定しつつ、読み込みが可能なので、そっちを使うことにした。とは言え、忘れそうなので記録しとく。
<pre class="lang:default decode:true" title="UTF-8等のFileSystemObjectで対応していない形式を書き出す">
'概略 指定されたファイルを読み込む関数※UTF-8等
'関数名 loadIniFiles(iniFileName)
'変数 iniFileName{String} 読み込むiniファイル名
'返り値 無し
Function loadIniFilesByUTF8(iniFileName)
Dim curPath As String
Dim retstring As String
Dim sr As Object
Dim strData as String
curPath = ThisWorkbook.Path & "\" & iniFileName
'MsgBox ThisWorkbook.Path
Set sr = CreateObject("ADODB.Stream")
sr.Mode = 3 '読み取り/書き込みモード
sr.Type = 2 'テキストデータ
sr.Charset = "UTF-8" '文字コードを指定
sr.Open 'Streamオブジェクトを開く
sr.LoadFromFile (curPath) '指定ファイルの内容を読み込む
sr.Position = 0 'ポインタを先頭へ
Do While sr.EOS <> True
strData = sr.ReadText(-2) 'データ読み込み
'MsgBox "内容は" & strData
isTextProperty(strData)
Loop
sr.Close 'Streamを閉じる
Set sr = Nothing 'オブジェクトの解放
' Set fs = CreateObject("Scripting.FileSystemObject")
' Set a = fs.OpenTextFile(curPath, 1, False, -1)
' Do While a.AtEndOfStream <> True
' retstring = a.ReadLine
' MsgBox retstring
' Loop
' a.Close
End Function