プロが教えるわが家の防犯対策術!

http://oshiete.goo.ne.jp/qa/2568740.html

上記と同じ質問です。

例えば、「あああ.xlsx」で作業していて、一旦別のファイル名、
例えば「いいい.xlsx」として保存した後に、ファイル「あああ」に戻りたい時があります。

ところが、「いいい」で保存してしまうと、
開いているファイルが「いいい」になってしまうため、
「あああ」に戻るには、「いいい」を閉じてから「あああ」を再度開かなければならず、
とても煩わしいです。これをVBAで解決する方法はありますでしょうか。

以下コードを作成しましたが、当然というか、自分では上の問題を解決できませんでした。
(ただ普通に保存しただけ・・)

解決方法について、どなたかご教示頂ければ幸いです。


Sub ファイル保存()

Dim myFile As String
Dim Syori As VbMsgBoxResult

myFile = ActiveSheet.Range("A1").Value & ".xlsm"

Syori = MsgBox("指定した名前のファイル名で保存します。" & vbCrLf & "よろしいですか?", vbYesNo, Title:="確認")

If Syori = vbYes Then
ThisWorkbook.SaveAs fileName:=myFile
MsgBox "保存しました。"

Else
MsgBox "中止しました。"

End If
End Sub


なお、使用環境はexcel2007です。
よろしくお願いいたします。

A 回答 (3件)

"SaveAs"を使わないで"SaveCopyAs"を使ってみては。



[名前を付けて保存]にこだわらないで、[コピーして名前を付けて保存]
なら現在のブックはマクロ実行後も残りますので。
http://www.excel-excel.com/tips/vba_177.html
    • good
    • 7
この回答へのお礼

ご回答ありがとうございました。

>"SaveAs"を使わないで"SaveCopyAs"を使ってみては。

アドバイスにしたがって試してみました。
なんと、既存のファイルを残したまま、別のファイルを保存することができました。
ソースコードの"SaveAs"を、"SaveCopyAs"に変えただけです。

助かりました。本当にどうもありがとうございます!

お礼日時:2014/03/19 09:07

保存したファイル名を編集中になる仕様って事なら、


・「いいい.xlsx」を保存
・「あああ.xlsx」を保存
とかすれば、望みの状況になるのでは。


あるいは、
「あああ.xlsx」を一旦保存。
Shell関数なんかで「あああ.xlsx」を別のファイル名(「いいい.xlsx」)にコピー。
とか。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

>・「いいい.xlsx」を保存
>・「あああ.xlsx」を保存
>とかすれば、望みの状況になるのでは。


たしかにそうですね。それが現実的でしょうか。
ただ、今はファイル名をセルから自動取得するようにしているので、
元のファイル名を別登録する手間が必要で、ちょっとだけ面倒が。。。
何か考えてみます。

お礼日時:2014/03/19 08:59

開いているいる最中のファイル名を変えることはできませんから、


「ファイルが開いている」という状態に拘るなら無理でしょう。
質問文にある、ファイル名を指定して保存しか手はないと思います。
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございました。

>開いているいる最中のファイル名を変えることはできませんから、
>「ファイルが開いている」という状態に拘るなら無理でしょう。

そうなのですか(というか、そうなんですね)。
大した手間ではないのですが、場合によっては、別名で保存する回数が10回以上に及ぶので、
簡略化できればと思いましたが、仕様では仕方がないですね。

お礼日時:2014/03/19 08:53

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A