UTF-8のデータを複数開いて編集したい
皆様のお力をお貸しください
基本がわかってないために所々おかしなところがあるかも知れませんが宜しくお願いします。
UTF-8で書かれたxmlデータをエクセルで開いて編集して保存したいのですがうまくいきません。
Sub test1()
Dim xmlFileName As Variant
Dim F_Filter As String
Dim i As Integer
F_Filter = "データ,*.txt"
xmlFileName = Application.GetOpenFilename(filefilter:=F_Filter, MultiSelect:=True, Title:="ファイル選択")
If IsArray(xmlFileName) Then
For i = 1 To UBound(xmlFileName)
Workbooks.OpenText Filename:=xmlFileName(i), _
Origin:=932, StartRow:=1, DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:= _
False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True
MsgBox xmlFileName(i)
ActiveWorkbook.Close
Next
End If
End Sub
Origin:=932は
Origin:=-535
だと思ってください。(家だとなぜかエラーのため)
一つはこんな感じです。
これだと連続編集できるのですが拡張子がxmlだとスクリプトエラー
となってしまうため
まず拡張子を手で.txtに変えています。
二つ目は
Sub OpenFile()
Dim xmlFileName As Variant
Dim F_Filter As String
Dim NewName As String
F_Filter = "データ,*.xml"
xmlFileName = Application.GetOpenFilename(filefilter:=F_Filter, MultiSelect:=False, Title:="ファイル選択")
If xmlFileName = False Then
MsgBox "キャンセルしました"
Else
NewName = Left(xmlFileName, InStrRev(xmlFileName, ".", -1, vbTextCompare)) & "txt"
Name xmlFileName As NewName
Workbooks.OpenText Filename:=NewName, _
Origin:=932, StartRow:=1, DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:= _
False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True
MsgBox xmlFileName
ActiveWorkbook.Close
Name NewName As xmlFileName
End If
End Sub
これだと拡張子を変更してくれるのですが連続編集できません。
拡張子を自動で変更しつつ連続編集できないものでしょうか。
というのも自作なのですがすべてつぎはぎでできているためうまくできないのです。どうぞ宜しくお願いします。
あわせて編集したあとUTF-8で保存したいのですがこちらのコード
もわかりましたら宜しくお願いします。
お礼
ご回答ありがとうございました。