Skip to content

Instantly share code, notes, and snippets.

@nanbu
Created August 31, 2011 14:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nanbu/1183755 to your computer and use it in GitHub Desktop.
Save nanbu/1183755 to your computer and use it in GitHub Desktop.
VBAで文字コードを指定してテキストファイルを読み取る (Windows専用)

Function LoadText(Filename, Optional Encoding = "UTF-8") As String

  • 文字コードを指定してテキストファイルからを文字列を読み取ります。
  • WindowsのVBAでのみ動作します。(MacのVBAではエラーが発生します)

特徴

  • ファイルのオープン・クローズ処理が不要です。(関数の内部で完結しています)
  • 幅広い文字コードを読み取ることができます。(ADODB.StreamのCharsetプロパティが対応している文字セット)

使用例

Dim Text As String
Text = LoadText("Hello.txt", "shift_jis")

引数と戻り値

  • Filename: 読み取るテキストファイルのパス
  • Encoding: テキストファイルの文字コード。省略可。ADODB.StreamのCharsetプロパティが対応している文字セットを指定する。省略時はUTF-8になる。
  • 戻り値: 読み取ったテキストファイルの中身。読み取りに失敗したら空文字列を返す。

よく使うEncoding

  • "utf-8"
  • "utf-16"
  • "shift_jis"
Function LoadText(Filename, Optional Encoding = "UTF-8") As String
On Error Resume Next
With CreateObject("ADODB.Stream")
.Open
.Charset = Encoding
.LoadFromFile Filename
LoadText = .ReadText
.Close
End With
If Err.Number <> 0 Then
LoadText = ""
End If
End Function
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment