サンプルプログラム概要
・「ThisWorkbook」の「Workbook_BeforeSave」を使用する
・「名前を付けて保存」はできる
・ここでは対象のExcelファイルパスに「C:\Users\user」が含まれている場合、上書き保存を不可にする
サンプルプログラム
●ThisWorkbookに以下を記載する。
'変数の宣言を必須
Option Explicit
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Cancel As Boolean)
'保存不可にするサーバー名(パス)
Const SERVER_NAME As String = "C:\Users\user"
If InStr(ThisWorkbook.Path, SERVER_NAME) > 0 And SaveAsUI = False Then
MsgBox "サーバー上では上書き保存できません。" & vbCrLf & _
"以下のどちらかで保存してください。" & vbCrLf & vbCrLf & _
"・ローカル上にコピーしてから保存" & vbCrLf & _
"・「名前を付けて保存」でローカル上に保存" & vbCrLf & vbCrLf & _
"※「名前を付けて保存」でサーバー上に保存できてしまいますが、" & vbCrLf & _
" 止めてください。" _
, vbExclamation
Cancel = True
End If
End Sub
結果
指定したサーバー上(パス上)では、上書き保存できなくなる。