アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel97のVBAでマクロを作っています。

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

A 回答 (3件)

こんにちは



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

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=188673

この回答への補足

説明不足で申し訳ありません。

「任意ディレクトリの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"”とはできない

と、こんな感じです。

補足日時:2001/12/23 13:48
    • good
    • 0

『自分を別名(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
    • good
    • 0

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
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/12/25 19:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!