Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3091 / 13644 ツリー ←次へ | 前へ→

【64285】ブックのバックアップをVBAで。 ゆっき 10/1/30(土) 4:11 質問[未読]
【64286】Re:ブックのバックアップをVBAで。 Abyss 10/1/30(土) 4:13 回答[未読]
【64287】Re:ブックのバックアップをVBAで。 ゆっき 10/1/30(土) 10:35 質問[未読]
【64319】Re:ブックのバックアップをVBAで。 Abyss 10/1/30(土) 17:29 発言[未読]
【64320】Re:ブックのバックアップをVBAで。 UO3 10/1/30(土) 17:36 発言[未読]
【64359】Re:ブックのバックアップをVBAで。 ゆっき 10/1/31(日) 14:45 お礼[未読]

【64285】ブックのバックアップをVBAで。
質問  ゆっき  - 10/1/30(土) 4:11 -

引用なし
パスワード
   ブックのバックアップを違う場所に同じ名前でとっていきたいです。
現在、個人のPCで操作したあと、サーバーにコピペしてます。
(サーバーが重く、ファイルが開かないときがあり作業が遅いので)

今後、ファイル更新した後にサーバー(指定した場所)に
自動で保存するマクロボタンを作りたいなと思い、
いろいろ調べていました。。。が、
既存ブックと同じ場所にバックアップファイルを作成はできるのですが、
違う場所になるとエラーになります(ファイルが読み取り専用だとかいってきます)
VBAよくわからないので???になっています。
どのようにすればいいのでしょうか?

参考にしたVBAから自分でちょこっと手直ししたもののっけます。
ご伝授お願いします。
--------------------------------------------------------------------------
Sub COPY()

Dim wb As Workbook
Dim ret As Integer
Dim sFileName As String
Dim strPath As String

  '確認メッセージ
  ret = MsgBox("バックを作成しますか?作業中ブックを保存します。", vbYesNo)
  If ret = vbNo Then
    Exit Sub
  End If
  
  'アクティブブック取得
  Set wb = ActiveWorkbook

  'アクティブブックの編集確認
  If wb.Saved = False Then
    '編集有りの場合は上書き保存を行う
    wb.Save
  End If

  strPath = "D:\test\"  
  sFileName = strPath & wb.Name
   ActiveWorkbook.SaveAs Filename:=sFileName

End Sub

【64286】Re:ブックのバックアップをVBAで。
回答  Abyss  - 10/1/30(土) 4:13 -

引用なし
パスワード
   SaveCopyAsメソッドを使ってみてください。

【64287】Re:ブックのバックアップをVBAで。
質問  ゆっき  - 10/1/30(土) 10:35 -

引用なし
パスワード
   ▼Abyss さん:

ActiveWorkbook.SaveCopyAs Filename:=sFileName

ということですよね?前の結果と同じで
実行時エラー1004

読み取り専用でアクセスできません というエラーになってしまいます。。。

【64319】Re:ブックのバックアップをVBAで。
発言  Abyss  - 10/1/30(土) 17:29 -

引用なし
パスワード
   現在の作業ファイル自体が目的する
場所のファイルPathになっている可能性が
あります。一度、ファイルを閉じて
もう一度確認してください。

【64320】Re:ブックのバックアップをVBAで。
発言  UO3  - 10/1/30(土) 17:36 -

引用なし
パスワード
   ▼ゆっき さん:

>既存ブックと同じ場所にバックアップファイルを作成はできるのですが、
>違う場所になるとエラーになります(ファイルが読み取り専用だとかいってきます)

ご提示のコードをコピペし、ドライブ名のみ、こちらの環境に合わせて
実行しましたが、元フォルダ、バックアップフォルダとも以下をのぞき
正常に保存されました。(当方XP & 2003です)
ただ、以下のケースの時のみ、読み取り専用でエラーになりました。
ただし、エラーはバックアップフォルダへの保存の前の元フォルダへの
保存 wb.Save で発生します。

・ブックに書き込みパスワードが設定されていて、それを読み込み専用で
 開いちたとき。

まぁ、これはあたりまえでしょうけど・・・・

【64359】Re:ブックのバックアップをVBAで。
お礼  ゆっき  - 10/1/31(日) 14:45 -

引用なし
パスワード
   解決しました。
どうもフォルダを作成した場所が問題だったようです。

うちのPCでマクロを試していたのですが、
私が仮にフォルダを作成した場所がバックアップ専用?
みたいになっていたのかな?
こちらの疑問は残りますが、
デスクトップ上にフォルダを移してパスを変更したらうまくいきました。

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

3091 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free