Excel VBA質問箱 IV

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

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


39513 / 76736 ←次へ | 前へ→

【42333】Re:BeforeSaveイベントでOnTimeを再セッ...
発言  漂流民  - 06/9/7(木) 0:10 -

引用なし
パスワード
   ▼ハチ さん:
こんばんわ

古いスレを引っ張り出してすみません。
その後何か分かったことありますか?
私もちょっと気になっていたので・・・


参考にもなりませんが、その時私が検証用に使用していたコードです。

とりあえず、手動の上書き保存とコードからの上書き保存(Book_Save)との
挙動の違いを見るために簡素化してみました。
******************************************************************************************

'標準モジュール

Sub Book_Save()
  ThisWorkbook.Save
End Sub

Function Set_OnTime()
  MsgBox "Set_OnTime"
  Application.OnTime Now() + TimeValue("00:00:01"), "Exe_OnTime"
End Function

Function Exe_OnTime()
  MsgBox "Exe_OnTime"
End Function


'ThisWorkBookモジュール

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  Call Set_OnTime
End Sub


で、コード→イベント発生→プロシージャ呼び出し→OnTime
の手順のどこかが悪いのかもと考えてSaveの代わりにSelectでやってみました。
******************************************************************************************

'標準モジュール

Sub Cell_Select()
  Range("A1").Select
End Sub

Function Set_OnTime()
  MsgBox "Set_OnTime"
  Application.OnTime Now() + TimeValue("00:00:01"), "Exe_OnTime"
End Function

Function Exe_OnTime()
  MsgBox "Exe_OnTime"
End Function


'ThisWorkBookモジュール

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
  Call Set_OnTime
End Sub


Selectでは正常なようです^^

なので、今度はApplicationオブジェクトまわりかも?と思い
簡単にチェックできそうなものを並べてみました。
******************************************************************************************

'標準モジュール

Sub Book_Save()
  ThisWorkbook.Save
End Sub

Function Set_OnTime()
  MsgBox "Set_OnTime"
  tm = Now() + TimeValue("00:00:01")
  With Application
    .OnTime tm, "Exe_OnTime"
    .StatusBar = "次回チェック:" & tm
    .Dialogs(xlDialogProperties).Show
    .DisplayFormulaBar = Not .DisplayFormulaBar
    .ActiveCell = "次回チェック:" & tm
    .CommandBars("Formatting").Visible = Not .CommandBars("Formatting").Visible
  End With
End Function

Function Exe_OnTime()
  MsgBox "Exe_OnTime"
End Function


'ThisWorkBookモジュール

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  Call Set_OnTime
End Sub


特に気になったのが、似たような設定動作で、コードから.Saveした時
    .CommandBars("Formatting").Visible = Not .CommandBars("Formatting").Visible
は動作するのに
    .DisplayFormulaBar = Not .DisplayFormulaBar
は動作しないということです。
これはシートで設定する時、「表示(V)」直下にあるものと「表示(V)」ー「ツールバー(T)」
の階層化にあるものとの違いが関係ある?

以前、
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=38873;id=excel
こういうのがあったので、手動で上書き保存するのとコードから.Saveするのとでは
処理方法が違うのかもしれません。(この辺のことが影響ありそうな・・・)

結局何も分かりません、駄レス失礼しましたm(__)m

0 hits

【41354】BeforeSaveイベントでOnTimeを再セットで... ハチ 06/8/7(月) 13:20 質問
【41429】Re:BeforeSaveイベントでOnTimeを再セット... ichinose 06/8/10(木) 7:39 発言
【41432】Re:BeforeSaveイベントでOnTimeを再セッ... ハチ 06/8/10(木) 9:09 発言
【42333】Re:BeforeSaveイベントでOnTimeを再セッ... 漂流民 06/9/7(木) 0:10 発言
【42345】Re:BeforeSaveイベントでOnTimeを再セッ... ハチ 06/9/7(木) 13:47 発言
【42351】.Saveでは設定できないプロパティがある? ハチ 06/9/7(木) 16:52 発言
【42357】Re:.Saveでは設定できないプロパティがあ... 漂流民 06/9/8(金) 1:11 発言
【42362】Re:.Saveでは設定できないプロパティがあ... ハチ 06/9/8(金) 9:17 発言
【42386】Re:.Saveでは設定できないプロパティがあ... 漂流民 06/9/9(土) 0:40 発言
【42393】Re:.Saveでは設定できないプロパティがあ... ハチ 06/9/9(土) 7:50 発言
【42407】Re:.Saveでは設定できないプロパティがあ... ハチ 06/9/9(土) 20:25 発言
【42433】Re:.Saveでは設定できないプロパティがあ... 漂流民 06/9/11(月) 23:43 発言

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