• ベストアンサー

Excel97VBA

Excel97のVBAでマクロを作っています。 1.xlsというファイルを、2.prn(スペース区切りテキスト)で保存し、再度1.xlsというファイルで元のファイルに上書き保存したいのですが、1というファイル名を任意に変更したいので、保存形式とファイル名を元のファイルと同じにして元のファイルに上書きする、ということは可能でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

prnで保存した時に、シート名が変わってしまいました。以下のように変更すれば、シート名を元に戻します。 Sub SaveMe()   Dim myPath As String '最初のxlsのパス   Dim myFileName As String '最初のxlsのファイル名   Dim mySheetName As String '保存するシート名(***追加***)   Dim prnFileName As String 'prnファイル名   prnFileName = "2.prn"   myPath = ThisWorkbook.Path   myFileName = ThisWorkbook.Name   mySheetName = ActiveSheet.Name '(***追加***)   'メッセージを出さない   Application.DisplayAlerts = False   'prnでディスクトップに保存   ActiveWorkbook.SaveAs Filename:="C:\WINDOWS\デスクトップ\" & prnFileName, _                           FileFormat:=xlTextPrinter   ActiveSheet.Name = mySheetName '(***追加***)   'xlsで最初のドライブ・フォルダに保存   ActiveWorkbook.SaveAs Filename:=myPath & "\" & myFileName, _                           FileFormat:=xlNormal End Sub

noname#1997
質問者

お礼

ありがとうございました。 おかげで完成しました。

その他の回答 (2)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

『自分を別名(prn)で保存し、かつ元のフォルダに元の名前(xls)で保存する』ようにしてみましたが・・・。こういうことでしょうか? Sub SaveMe()   Dim myPath As String '最初のxlsのパス   Dim myFileName As String '最初のxlsのファイル名   Dim prnFileName As String 'prnファイル名   prnFileName = "2.prn"   myPath = ThisWorkbook.Path   myFileName = ThisWorkbook.Name   'メッセージを出さない   Application.DisplayAlerts = False   'prnでディスクトップに保存   ActiveWorkbook.SaveAs Filename:="C:\WINDOWS\デスクトップ\" & prnFileName, _                           FileFormat:=xlTextPrinter   'xlsで最初のドライブ・フォルダに保存   ActiveWorkbook.SaveAs Filename:=myPath & "\" & myFileName, _                           FileFormat:=xlNormal End Sub

  • Raistlin
  • ベストアンサー率63% (65/102)
回答No.1

こんにちは この質問はNo.188673と何が違うのでしょうか? もしうっかり2重投稿とかいうので無ければ、もう少し具体的な問題点を書いてください。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=188673
noname#1997
質問者

補足

説明不足で申し訳ありません。 「任意ディレクトリの1.xls」を「デスクトップの2.prn」として保存した為、元のファイルに上書きするには元のディレクトリと元のファイル名を指定もしくは取得する必要があると思います。 そこで、次の2点の問題点があります。 (1)元のディレクトリを指定(取得)できない >一旦デスクトップに保存した為、“ThisWorkbook.Path”ではデスクトップを取得してしまう (2)元のファイル名を指定(取得)できない >2.prnというファイル名に変更した為、ファイル形式は“FileFormat:=xlNormal”でxlsに変更できても、元のファイル名「1」が取得できない 但し、元のファイル名「1」は、「1-1.xls」や「2-1.xls」など、固定されていないファイル名を複数使いたいので、“FileName:="1.xls"”とはできない と、こんな感じです。

関連するQ&A