
No.3ベストアンサー
- 回答日時:
こんにちは。
>昔、同僚だった人のPCを使って作業していたときはそのようなメッセージが出てくれて、
それは、見かけの「上書き保存(FaceID = 3)」のアイコンを使い、中身は、別のコマンドを呼んでいるだけだと思います。
On Error Resume Next
ActiveWorkbook.SaveAs ActiveWorkbook.Name
On Error GoTo 0
しかし、以下は、実際に私が使っているものを書き換えたもので、私のものは、もう少し複雑な働きをしています。ただ、Ctrl + S を設定だけは、意図的に抜いています。必要なら、付け加えます。
一旦保存して、再起動すると、設定されています。
Wordに関しては、時間があったら、また、書き込みます。
「個人用マクロブック」に登録してください。
'標準モジュール
Private ClassBtns(1) As New Class1
Public cnt As Integer
Sub Auto_Open()
With Excel.Application
Set ClassBtns(0).Btn = .CommandBars("Standard").FindControl(, 3)
Set ClassBtns(1).Btn = .CommandBars("File").FindControl(, 3)
End With
End Sub
'クラスモジュール (Class1)
Private WithEvents myBtn As Office.CommandBarButton
Public Property Set Btn(ByVal myNewBtn As CommandBarButton)
Set myBtn = myNewBtn
End Property
Private Sub myBtn_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
Dim FileName As String
Dim Ret As VbMsgBoxResult
If cnt > 0 Then
cnt = 0
Exit Sub
End If
FileName = ActiveWorkbook.Name
cnt = cnt + 1
If FileName Like ".xl?" Then
Application.Dialogs(xlDialogSaveAs).Show
Exit Sub
End If
If Dir(FileName) <> "" Then
Ret = MsgBox("この場所に'" & FileName & "'というファイルが既にあります。置き換えますか?", vbYesNoCancel + vbExclamation)
If Ret = vbYes Then
ActiveWorkbook.Save
Exit Sub
ElseIf Ret = vbNo Then
Application.Dialogs(xlDialogSaveAs).Show FileName
Exit Sub
Else
Exit Sub
End If
End If
End Sub
なお、全ての保存に対してメッセージが出るのではなく、既に、同じフォルダに同名のファイルがある場合に出ることとと、上書きにコマンドを使ったときにだけでます。また、Workbook_BeforeSave イベントは、あくまでも、自ブックだけです。Application イベントを作らなくてはなりません。しかし、もともと、ボタンに対するものならば、ボタンにインスタンス等を設定したほうが楽です。
この回答へのお礼
お礼日時:2009/01/27 11:30
ありがとうございます。ご回答の内容は保存させていただき、勉強して理解できるようになったら実施したいと思います。ありがとうございました。
No.4
- 回答日時:
追加
#3のWordのコードです。Normal.dot に登録してください。
なお、ふだんは、オブジェクトは壊れないのですが、Excel/Wordとも、コードをいじらないように、プロジェクトを簡単なパスワードでロックしたほうがよいです。
'--------------------------------------------
'標準モジュール
Private ClassBtns(1) As New Class1
Public cnt As Integer
Sub Auto_Open()
With Word.Application
Set ClassBtns(0).Btn = .CommandBars("Menu Bar").Controls("ファイル(&F)").Controls("上書き保存(&S)")
Set ClassBtns(1).Btn = .CommandBars("Standard").FindControl(, 3)
End With
End Sub
'--------------------------------------------
'クラスモジュール (Class1)
Private WithEvents myBtn As Office.CommandBarButton
Public Property Set Btn(ByVal myNewBtn As CommandBarButton)
Set myBtn = myNewBtn
End Property
Private Sub myBtn_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
Dim FileName As String
Dim Ret As VbMsgBoxResult
If cnt > 0 Then
cnt = 0
Exit Sub
End If
FileName = ActiveDocument.Name
cnt = cnt + 1
If FileName Like ".do?" Then
Application.Dialogs(xlDialogSaveAs).Show
Exit Sub
End If
If Dir(FileName) <> "" Then
Ret = MsgBox("この場所に'" & FileName & "'というファイルが既にあります。置き換えますか?", vbYesNoCancel + vbExclamation)
If Ret = vbYes Then
ActiveDocument.Save
Exit Sub
ElseIf Ret = vbNo Then
Application.Dialogs(wdDialogFileSaveAs).Show FileName
Exit Sub
Else
Exit Sub
End If
End If
End Sub
'--------------------------------------------
No.1
- 回答日時:
「上書き」ボタンは、警告や確認無しで上書き保存する為のボタンですのですので、標準では警告を出すようには出来ないと思います。
「同僚だった人」に、設定を確認する事はできないのですか?
上書き前に警告を出したいのでしたら、ツールバーから「上書き」ボタンを消して、常に名前を付けて保存で保存する事にしても良いですね。
または、ExcelならThisWorkbook に、↓の様なマクロを入れる事で保存前に警告を出せますが……。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI = False Then
If MsgBox("上書き保存します。", vbOKCancel) = vbCancel Then Exit Sub
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルを上書き保存したのに...
-
エクセル文書を保存したらメモ...
-
いきなりPDFでPDFファイルを開...
-
Excel画面の自動更新 Excelファ...
-
エクセルファイルに上書き保存...
-
ピボットテーブルの更新ができない
-
Excelで上書き保存時の確認をは...
-
メール添付されているファイル...
-
Excel 2003の保存アイコンが消...
-
エクセルで作った書類の作成者...
-
エクセルの保存をするときのタ...
-
Illustratorファイルに読み取り...
-
マクロでエクセルをメール送信...
-
エクセルを開いた時に強制的に...
-
csvファイルを上書き保存でカン...
-
パワーポイントをエクセルファ...
-
【スプレドシート】IMPORTRANGE...
-
EXCELで上書き保存しないと反映...
-
メモ帳で開く設定を元に戻したい。
-
エクセルで「500時間」を「何日...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルを上書き保存したのに...
-
いきなりPDFでPDFファイルを開...
-
エクセル文書を保存したらメモ...
-
メール添付されているファイル...
-
Excel画面の自動更新 Excelファ...
-
エクセルでCSVファイルとして保...
-
メールソフト「サンダーバード...
-
Illustratorファイルに読み取り...
-
エクセル 更新していないのに...
-
excelとCSVについて質問です! ...
-
開いてるファイル(エクセル等)...
-
ピボットテーブルの更新ができない
-
EXCELで同一名のファイルがある...
-
エクセルがwindows終了時に未保...
-
エクセル表のCSV化ができない
-
エクセルでVBAを使用して1分毎...
-
エクセル2016 上書き保存が出来...
-
Excelのデーターが一瞬で消えた。
-
エクセルを開いた時に強制的に...
-
エクセル2007で互換モードで上...
おすすめ情報