• 締切済み

テキストファイルとして開く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 どうも違うようです 御教示ください

みんなの回答

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.3

まさかとは思いますが、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)
回答No.2

> フォルダ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)
回答No.1

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

関連するQ&A