過去ログ

                                Page     576
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼上書き保存を禁止したい  ぱる 03/1/21(火) 14:15
   ┗Re:上書き保存を禁止したい  りん 03/1/21(火) 18:44

 ───────────────────────────────────────
 ■題名 : 上書き保存を禁止したい
 ■名前 : ぱる
 ■日付 : 03/1/21(火) 14:15
 -------------------------------------------------------------------------
   EXCELのデータファイルを、上書き保存禁止にしたいのですが
どおすれば良いでしょうか?(名前を付けて保存は出来るように)

* Auto_Open マクロを起動しているので、ファイルを×で閉じると
  保存の有無を聞かれてしまいます。
 ───────────────────────────────────────  ■題名 : Re:上書き保存を禁止したい  ■名前 : りん <rin_doggie@hotmail.com>  ■日付 : 03/1/21(火) 18:44  -------------------------------------------------------------------------
   ぱる さん、こんばんわ。

>EXCELのデータファイルを、上書き保存禁止にしたいのですが
>どおすれば良いでしょうか?(名前を付けて保存は出来るように)
>* Auto_Open マクロを起動しているので、ファイルを×で閉じると
>  保存の有無を聞かれてしまいます。

データファイルがマクロのあるブックと同じだとして。
BeforeSaveイベントを使います。
ThisWorkbookに書いてください。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  If ThisWorkbook.Path <> "" Then
   Cancel = True '保存キャンセル
   ThisWorkbook.Saved = True '保存したふり
  End If
End Sub

パス名が入っている → 一度保存している → 上書保存 という事になります。
マクロを無効にして記述しないと、このマクロも保存されません。

それ以外の場合は、データファイルを読取専用で開いておくのが無難です。
Sub Test()
  Workbooks.Open FileName:="C:\Book1.xls", ReadOnly:=True
End Sub
閉じるときに警告は出ますが、上書きは出来ません。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 576