
開いている別のファイルにExcelのマクロで上書きしたい
いつも申し訳ありませんが
またExcelのマクロについて質問させてください。
名前 = ActiveWorkbook.Name
Set ファイル = Application.FileDialog(msoFileDialogSaveAs)
Application.FileDialog(msoFileDialogSaveAs).InitialFileName = "コピー" & 名前
If ファイル.Show = -1 Then
Worksheets.Copy
ActiveWorkbook.SaveAs "コピー" & 名前
End If
Set ファイル = Nothing
これにより、現在開いているファイルを
マクロを付けない状態で
名前の前に「コピー」と付けた別のファイルとして保存しています。
ただ問題は
同じ「コピー」が付いたファイルがすでに開かれている場合
保存しようとしても
実行時エラー '1004':
このブックを、ほかの開いているブックまたはアドインと同じ名前では
保存できません。別の名前を指定するか、または保存する前に開いている
ブックまたはアドインを閉じてくさい。
というエラーが表示されてしまうのです。
Excel2002でもExcel2003でも同じでした。
これを
仮に「コピー」の付いているファイルが
すでに開かれているとしても
これに上書きする形で保存できるようにするためには
どうすればよいのでしょうか。
ご回答をよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
ファイルが開かれているか否かは、OS が担当しています。
開かれているファイルを上書き保存しようとした場合
OSから警告されてExcelは作業を中止します。
(OSの方が エライ のです)
なので自身のExcelで開いている場合には
Dim bk As Workbook
For Each bk In Workbooks
Debug.Print bk.Name
If bk.Name = "コピー" & 名前 & ".xls" Then
bk.Close
End If
Next
のように開いているブック名を取得して、閉じてから、Save の流れになるかと。
あるいは
On Error Goto errArere
等のようにエラー処理ルーチンに飛ばして
"コピー"をエラーが出なくなるまで(保存できるまで)
コピー1
コピー2
・・・
と変えて試みるとか。
もし共有フォルダで誰かが開いていている場合には
グッとハードルが上がってプログラム上では如何ともし難く
運用面での対処が必要の場合もあります。
『誰よ、○▽□を開いているのは!!』と会社中に響き渡る大声で・・
半分は冗談では有りません。
共有ファイルを現在使用しているユーザーを特定する方法
http://www.atmarkit.co.jp/fwin2k/win2ktips/083op …
回答、ありがとうございました。
おかげさまでうまくいきました。
実は勘違いしておりまして
bk.Close
のところを
ActiveWorkbook.Close
としていたのです。
ほんとうに助かりました。
また何かありましたら、よろしくお願いいたします。
今回の質問の件も職場で起こったことですし
共有フォルダについても勉強させていただきますね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/01/27 13:15
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイルサーバ上のファイルが...
-
同じファイル名 上書きしないフ...
-
エクセルで複数のコメントのサ...
-
現在のブックを閉じないで、マ...
-
CopyFileコマンドでのファイル...
-
バッチファイル XCOPYで上書き...
-
開いている別のファイルにExcel...
-
frxファイルの役目
-
xcopyでのバッチコピー方法でコ...
-
エクセルの保護ビューについて
-
FTPとファイルコピーの違いにつ...
-
エクセルのハイパーリンクがコ...
-
ワード 一部のページだけをpdf...
-
Excel ハイパーリンク設定につ...
-
エクセル2010、図が大きすぎま...
-
バッチファイル 別ファイルにリ...
-
「ファイルが見つかりません D...
-
vbsでExcelのシートをコピーす...
-
VBSでExcelシートのコピー
-
bat 同名ファイルコピー時にリ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
ファイルサーバ上のファイルが...
-
Vba初心者です。下記のコード助...
-
MSオフィス2013にMS365が上書き...
-
同じファイル名 上書きしないフ...
-
バッチファイル XCOPYで上書き...
-
エクセルのハイパーリンクがコ...
-
frxファイルの役目
-
[エクセル]コピーするとオブジ...
-
xcopyでのバッチコピー方法でコ...
-
バッチファイル 別ファイルにリ...
-
bat 同名ファイルコピー時にリ...
-
バッチファイルのコピーで
-
アクセス クエリを別のファイ...
-
vbsでファイルやフォルダのコピ...
-
マインクラフトPCをプレイしよ...
-
エクセル2010、図が大きすぎま...
-
現在のブックを閉じないで、マ...
-
開いている別のファイルにExcel...
-
FTPとファイルコピーの違いにつ...
おすすめ情報