HiiHahWIKI - making some notes for... -
Excel:VBA:UTF-8/LFのファイルを読み込む
をテンプレートにして作成
開始行:
*Excel:VBA:UTF-8/LFのファイルを読み込む [#w6171a97]
ハマったのでごみごみコメントを書いたコードを残します。
まあ、端的には、「ADODB.Stream」ってやつを使えばOKです。
***コメント無し版 [#w0aed87f]
コメント無しだとすっきりです。
Sub loadLogFile2(ByRef fileName As Variant)
Dim rowNo As Integer
Dim readString As String
Dim st As Object
Set st = CreateObject("ADODB.Stream") 'ADODB.Stream生成
st.Type = 2 'オブジェクトに保存するデータの種類を文字...
st.Charset = "utf-8" '文字コード(Shift_JIS, Unicode...
st.LineSeparator = 10 '改行LF(10)
st.Open 'Streamのオープン
st.LoadFromFile (fileName) 'ファイル読み込み
rowNo = 5
Do While Not st.EOS
rowNo = rowNo + 1
readString = st.ReadText(-2) 'テキストを1行読み込む。
Cells(rowNo, 2).Value = readString '読み込んだ文字...
Loop
st.Close 'Streamのクローズ
Set st = Nothing
End Sub
***コメントあり版 [#z4249231]
結構コメントを書きましたw
Sub loadLogFile(ByRef fileName As Variant)
Dim rowNo As Integer
Dim readString As String
Dim st As Object
' ADODB.Streamの参照URL
' http://msdn.microsoft.com/ja-jp/library/cc364272.aspx
' http://msdn.microsoft.com/ja-jp/library/cc364273.aspx
Set st = CreateObject("ADODB.Stream") 'ADODB.Stream生成
' StreamTypeEnumの仕様
' adTypeBinary 1 バイナリ データを表します。
' adTypeText 2 既定値です。Charset で指定された文字...
' 【参照URL】http://msdn.microsoft.com/ja-jp/library/cc...
st.Type = 2 'オブジェクトに保存するデータの種類を文字...
' 【参照URL】http://msdn.microsoft.com/ja-jp/library/cc...
st.Charset = "utf-8" '文字コード(Shift_JIS, Unicode...
' LineSeparatorsEnumの仕様
' adCR 13 改行復帰を示します。
' adCRLF -1 既定値です。改行復帰行送りを示します。
' adLF 10 行送りを示します。
' 【参照URL】http://msdn.microsoft.com/ja-jp/library/cc...
st.LineSeparator = 10 '改行LF(10)
st.Open 'Streamのオープン
st.LoadFromFile (fileName) 'ファイル読み込み
rowNo = 5
'ファイルの終りまでループ
Do While Not st.EOS
rowNo = rowNo + 1
' ReadTextの仕様
' 引数、読み込む文字列、もしくはStreamReadEnumの値を指定
' StreamReadEnumの仕様
' adReadAll -1 既定値です。現在の位置から EOS マーカ...
' adReadLine -2 ストリームから次の行を読み取ります (L...
' 【参照URL】http://msdn.microsoft.com/ja-jp/library/cc...
readString = st.ReadText(-2) 'テキストを1行読み込む。
Cells(rowNo, 2).Value = readString '読み込んだ文字...
Loop
st.Close 'Streamのクローズ
Set st = Nothing
End Sub
終了行:
*Excel:VBA:UTF-8/LFのファイルを読み込む [#w6171a97]
ハマったのでごみごみコメントを書いたコードを残します。
まあ、端的には、「ADODB.Stream」ってやつを使えばOKです。
***コメント無し版 [#w0aed87f]
コメント無しだとすっきりです。
Sub loadLogFile2(ByRef fileName As Variant)
Dim rowNo As Integer
Dim readString As String
Dim st As Object
Set st = CreateObject("ADODB.Stream") 'ADODB.Stream生成
st.Type = 2 'オブジェクトに保存するデータの種類を文字...
st.Charset = "utf-8" '文字コード(Shift_JIS, Unicode...
st.LineSeparator = 10 '改行LF(10)
st.Open 'Streamのオープン
st.LoadFromFile (fileName) 'ファイル読み込み
rowNo = 5
Do While Not st.EOS
rowNo = rowNo + 1
readString = st.ReadText(-2) 'テキストを1行読み込む。
Cells(rowNo, 2).Value = readString '読み込んだ文字...
Loop
st.Close 'Streamのクローズ
Set st = Nothing
End Sub
***コメントあり版 [#z4249231]
結構コメントを書きましたw
Sub loadLogFile(ByRef fileName As Variant)
Dim rowNo As Integer
Dim readString As String
Dim st As Object
' ADODB.Streamの参照URL
' http://msdn.microsoft.com/ja-jp/library/cc364272.aspx
' http://msdn.microsoft.com/ja-jp/library/cc364273.aspx
Set st = CreateObject("ADODB.Stream") 'ADODB.Stream生成
' StreamTypeEnumの仕様
' adTypeBinary 1 バイナリ データを表します。
' adTypeText 2 既定値です。Charset で指定された文字...
' 【参照URL】http://msdn.microsoft.com/ja-jp/library/cc...
st.Type = 2 'オブジェクトに保存するデータの種類を文字...
' 【参照URL】http://msdn.microsoft.com/ja-jp/library/cc...
st.Charset = "utf-8" '文字コード(Shift_JIS, Unicode...
' LineSeparatorsEnumの仕様
' adCR 13 改行復帰を示します。
' adCRLF -1 既定値です。改行復帰行送りを示します。
' adLF 10 行送りを示します。
' 【参照URL】http://msdn.microsoft.com/ja-jp/library/cc...
st.LineSeparator = 10 '改行LF(10)
st.Open 'Streamのオープン
st.LoadFromFile (fileName) 'ファイル読み込み
rowNo = 5
'ファイルの終りまでループ
Do While Not st.EOS
rowNo = rowNo + 1
' ReadTextの仕様
' 引数、読み込む文字列、もしくはStreamReadEnumの値を指定
' StreamReadEnumの仕様
' adReadAll -1 既定値です。現在の位置から EOS マーカ...
' adReadLine -2 ストリームから次の行を読み取ります (L...
' 【参照URL】http://msdn.microsoft.com/ja-jp/library/cc...
readString = st.ReadText(-2) 'テキストを1行読み込む。
Cells(rowNo, 2).Value = readString '読み込んだ文字...
Loop
st.Close 'Streamのクローズ
Set st = Nothing
End Sub
ページ名: