- 締切済み
テキストファイルとして開くVBA
フォルダC:\Users\USER\Desktop\あいう において このダイアログを開いて そのなかのファイル(A.xml)を txtファイルとして開いて その名前を テキスト.txt として 同名で保存したいのですが Dim FileName As Variant Dim NewFile As TextFile FileName = Application.GetOpenFilename() Set NewFile = TextFile.Open(FileName) NewFile.SaveAs "テキスト.txt" Activetxtfile.SaveAs FileName:="C:\Users\PC\Desktop\あいう\テキスト.txt", FileFormat:=TextFile どうも違うようです 御教示ください
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- kkkkkm
- ベストアンサー率66% (1719/2589)
まさかとは思いますが、A.xmlの内容はそのままテキスト.txtにしたいという事ではないですよね。 単にリネームするだけみたいな感じでしたら、元のA.xmlは残してテキスト.txtという名前でコピーするコードです。 Sub Test2() Dim FileName As Variant ChDir "C:\Users\USER\Desktop\あいう" FileName = Application.GetOpenFilename(FileFilter:="xmlファイル,*.xml") If FileName = False Then MsgBox "キャンセルされました" Exit Sub End If FileCopy FileName, Left(FileName, InStrRev(FileName, "\")) & "テキスト.txt" End Sub
- kkkkkm
- ベストアンサー率66% (1719/2589)
> フォルダC:\Users\USER\Desktop\あいう > において > このダイアログを開いて が必要ですね。 Sub Test() Dim FileName As Variant ChDir "C:\Users\USER\Desktop\あいう" FileName = Application.GetOpenFilename(FileFilter:="xmlファイル,*.xml") If FileName = False Then MsgBox "キャンセルされました" Exit Sub End If ActiveWorkbook.XmlImport URL:=FileName, ImportMap:=Nothing, _ Overwrite:=True, Destination:=Range("$A$1") ActiveWorkbook.SaveAs FileName:=Left(FileName, InStrRev(FileName, "\")) & "テキスト.txt", _ FileFormat:=xlText End Sub
- kkkkkm
- ベストアンサー率66% (1719/2589)
A.xmlをテキスト.txtとして書き出します。 指定したXMLソースはスキーマを参照していません。XMLソースデータに基づいてスキーマを作成します。 というメッセージが出たらOKで先に進んでください。 タブ区切りで出力します。 Sub Test() ActiveWorkbook.XmlImport URL:="C:\Ok\A.xml", ImportMap:=Nothing, _ Overwrite:=True, Destination:=Range("$A$1") ActiveWorkbook.SaveAs Filename:="C:\Ok\テキスト.txt", _ FileFormat:=xlText End Sub カンマ区切りで出力したい場合は FileFormat:=xlCSV