|
▼漂流民 さん:
>古いスレを引っ張り出してすみません。
いえいえ^^
ご意見頂けるのはありがたいです。
>その後何か分かったことありますか?
>私もちょっと気になっていたので・・・
>参考にもなりませんが、その時私が検証用に使用していたコードです。
確認させて頂きました。
自分なりのその後に調査で判ったことと合わせてますと
Saveイベントからプロパティを設定しようとするとダメなプロパティがある。
取得はできるようなんですけど。
手動の上書き保存 と .Saveは違うようですね。
Sub Reset_OnTime()
MsgBox "Reset_OnTime" '*1 Reset_OnTimeの実行チェック用
Const Intarval As String = "00:00:05" 'チェック間隔 テスト用に5秒間隔
On Error Resume Next
'次回チェックの削除
Application.OnTime T, "Book_Chk", , False
On Error GoTo 0
'次回チェックの再設定
T = Now() + TimeValue(Intarval)
Debug.Print T '○
With Application
.OnTime T, "Book_Chk" '×
.StatusBar = "次回チェック:" & T '×
Debug.Print .StatusBar '○
Debug.Print .UserName '○
.UserName = "Test" & Rnd(5) '×
Debug.Print .UserName '変更さてれいない(マグレで同じこともあるけど)
.ActiveSheet.Name = Format(T, "mmss") '×
End With
End Sub
ActiveSheet.Name = が×というのが予想外でした。
もうちょっとシンプルにしてみたところ・・
'ThisWorkbookモジュール
Option Explicit
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Call Test
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'Call Test '○
ThisWorkbook.Save '呼んでいるけど先で×
End Sub
Private Sub Workbook_Open()
Call Test '○
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Call Test '○
ThisWorkbook.Save '呼んでいるけど先で×
End Sub
'標準モジュール
Option Explicit
Sub Test()
Dim T As Date
T = Now
Debug.Print Format(T, "mmss")
With Application
.ActiveSheet.Name = Format(T, "mmss") '×なこともある。
.ActiveCell = Format(T, "mmss") '○
End With
End Sub
ということで.OnTime と .Saveとの関係ではなく
.Save と 各プロパティの設定に問題がありそう。
との結論なのですがいかがでしょうか?
|
|