/ / VBA:アクセント付きの文字をテキストファイルから読み込み、それらを保存する必要があります - Excel、VBA

VBA:アクセント付きの文字をテキストファイルから読み込み、それらを保存する必要があります - Excel、VBA

VBAを使用してテキストファイルを読み込み、関連するデータを抽出してExcelファイルに転送したいと考えています。これは私が使用しているコードのタイプです:

Sub ReadText()
Dim myFile As String, textline As String
myFile = Application.GetOpenFilename()
Open myFile For Input As #1
LineNumber = 0
Do Until EOF(1)
LineNumber = LineNumber + 1
Line Input #1, textline
"do stuff to extract the info I want and transfer to Excel
Loop
Close #1
End Sub

私はスペイン語圏の国に住んでいるので私が保持しなければならない多くのアクセント付き文字です。問題は、これらのアクセント付き文字が他の文字に変換されていることです。例えば、何を読むべきか イングレス は、 INGL‰S

私はアクセント付き文字を置き換えるソリューションがあると思っていましたが、エクセルの情報で何をしたいのかにアクセントが必要なので、これをやりたいとは思っていません。

私はどこかでフォーマットオプションが欠けていますか?

回答:

回答№1は2

これを行う別の方法は、ADOを使用することです。

Sub ReadUTFFile()
Dim objADO As ADODB.Stream
Dim varText As Variant

Set objADO = New ADODB.Stream
objADO.Charset = "utf-8"
objADO.Open
objADO.LoadFromFile "C:Userspankaj.jajuDesktoputftest.txt"

varText = Split(objADO.ReadText, vbCr)
Range("A1").Resize(UBound(varText) - LBound(varText)).Value = Application.Transpose(varText)
End Sub

注意 - Microsoft ActiveX DataObjectsの参照を忘れないでください。

ここに画像の説明を入力

ここに画像の説明を入力 サンプルテスト

ここに画像の説明を入力


回答№2の場合は0

ここでは、自動整形を止めるために使用する関数を示します

Sub spcChr
Dim i As Long
Dim num As Integer
Dim x() As Byte
x = StrConv([A1], vbFromUnicode)
For i = 0 To UBound(x)
Select Case x(i)
Case 211: num = 79
Case 63: num = 83
Case Else: num = x(i)
End Select
[B1] = [B1] & Chr(num)
Next
End Sub

ここでは、A1セルに特殊文字を含む名前が含まれています。 B1は処理用です。