OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

Excel97VBA

  • 困ってます
  • 質問No.188724
  • 閲覧数181
  • ありがとう数2
  • 気になる数0
  • 回答数3
  • コメント数0

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

1.xlsというファイルを、2.prn(スペース区切りテキスト)で保存し、再度1.xlsというファイルで元のファイルに上書き保存したいのですが、1というファイル名を任意に変更したいので、保存形式とファイル名を元のファイルと同じにして元のファイルに上書きする、ということは可能でしょうか?
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル13

ベストアンサー率 68% (791/1163)

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

ありがとうございました。
おかげで完成しました。
投稿日時 - 2001-12-25 19:39:00
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル10

ベストアンサー率 63% (65/102)

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

この質問はNo.188673と何が違うのでしょうか?
もしうっかり2重投稿とかいうので無ければ、もう少し具体的な問題点を書いてください。
補足コメント
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"”とはできない

と、こんな感じです。
投稿日時 - 2001-12-23 13:48:29

  • 回答No.2
レベル13

ベストアンサー率 68% (791/1163)

『自分を別名(prn)で保存し、かつ元のフォルダに元の名前(xls)で保存する』ようにしてみましたが・・・。こういうことでしょうか? Sub SaveMe()   Dim myPath As String '最初のxlsのパス   Dim myFileName As String '最初のxlsのファイル名   Dim prnFileName As ...続きを読む
『自分を別名(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
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ