|
▼すいか さん:
>> →ところが、UTF-8などの文字セットのファイルでもないらしい。
>テキストファイルの文字コードが何か?
>というのは調べられるものでしょうか?
>(お教え頂いたページには、そこまで見つけられませんでした。)
ぼくも検索してみたんですが、あまり使い勝手の良いものはみつかりません
でした。
そこで、すべてのテキストファイルを、文字コードが「シフトJIS」だと
仮定してともかくワークシートにインポートしてみたら、どうか?
と思い、以下のプロシージャを作ってみました。
新規Bookを作成し、その標準モジュールに 以下のコードをコピペし、
Sheet1 の[A1]セルに 読み込むテキストファイルのあるフォルダ名を
書き入れて、実行してみてください。
'----------------------------------------------- 標準モジュール
Option Explicit
Sub ImportAllText()
Dim myPath As String
Dim f As String
Dim Filename As String
Dim io As Integer
Dim buf() As Byte
Dim i As Long
Dim nbyte As Long, v
With ThisWorkbook.Worksheets(1)
.Columns.ColumnWidth = 28
myPath = .Cells(1).Value '読み込むフォルダ
If Len(myPath) < 2 Then Exit Sub
If Right$(myPath, 1) <> "\" Then myPath = myPath & "\"
.UsedRange.Clear
.Cells(1).Value = myPath
f = Dir$(myPath & "*.txt")
io = FreeFile()
Do While Len(f) > 0
i = i + 1
.Cells(2, i).Value = f
Filename = myPath & f
Open Filename For Binary As io
nbyte = LOF(io)
If nbyte > 2 Then
ReDim buf(1 To nbyte)
Get io, 1, buf
v = Split(StrConv(buf, vbUnicode), vbCrLf)
If UBound(v) = 0 Then
v = Split(StrConv(buf, vbUnicode), vbLf)
End If
If UBound(v) > 0 Then
.Cells(3, i).Resize(UBound(v)).Value _
= Application.Transpose(v)
End If
End If
Close io
f = Dir$()
Loop
End With
MsgBox i & "個のファイルを読み込みました", vbInformation
End Sub
エラー処理はしていないので、途中でエラーになったら、
エラーメッセージの内容と エラーになったコード行とを確認してください。
また、エラーになったテキストファイルをメモ帳で開いて
・ 開けるか?
・ 文字化けしていないか?
を確認してください。
|
|