
教えて下さい!
会社のホームページにある情報を公開していて、その中に更新時間も載せております。その公開している文章はEXCELを利用しHTMファイルで保存しております。ファイルは社内の共有ファイルサーバーに保存されており、複数にて共有しています。そのEXCEL HTMファイルを編集し、(上書き)保存をした際、その時の時間を更新日時としてあるセルに表示させております。自身でVBAを以下の組みました。
(保存前処理の他、開いた時の列幅処理+前回更新日時の表示も行っています)
Option Explicit
---------------------------------------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim KOUSHINBI As Date
KOUSHINBI = Now
Range("E2").Value = KOUSHINBI
End Sub
---------------------------------------------------------------
Private Sub Workbook_Open()
MSGDISP '前回更新時間の表示
Dim TODAY As Date, KOUSHIN As Date
KOUSHIN = DateValue(Range("E2").Value)
TODAY = Date
If KOUSHIN <> TODAY Then
Columns("B:D").ColumnWidth = 0
End If
End Sub
--------------------------------------------------------
'以下標準モジュールで
Sub MSGDISP()
Dim A As Date
A = Worksheets("DAILY").Range("E2").Value
MsgBox ("前回の更新日時は" & A & "です")
End Sub
---------------------------------------------
もちろん、 Workbook_BeforeSaveと Workbook_Openは「THIS WORKBOOK」モジュールに記載しております。
これを実行すると、BOOK OPENの処理は行われるのですが、保存時の更新日時の処理が全く起きてくれません。
新規でEXCELを作成し、Workbook_BeforeSaveのみの処理を記述すると上手く処理が行われます。何が原因なのでしょうか??
No.2ベストアンサー
- 回答日時:
Excelでhtmファイルを編集している時の現象ですよね。
こちらでは同現象が再現できません。新規Book(.htm)にWorkbook_BeforeSaveと Workbook_Open だけ記載して『手動保存』してみてください。
それでもBeforeSaveイベントは発生しないのでしょうか?
.xlsファイルの場合はどうでしょう。
_BeforeSaveプロシージャにブレイクポイントを設定してもそこを通らないのでしょうか?
新規BookでもBeforeSaveイベントが起きない場合、
念のためExcelをセーフモードで起動して試してみてください。
#ウィンドウズメニューから[ファイル名を指定して実行]
excel /s
セーフモード、新規Bookで問題ないなら、
・他のイベントプロシージャが関係している。
・他のアドインやマクロブックが影響している。
・(これは無いと思いますがイベントプロシージャ名の記入ミス。コードペイン上部のドロップダウンリストから選択してます?)
この回答への補足
返事が遅くなりまして大変申し訳ありませんでした。
また、回答いただきましてありがとうございます。
まず、新規Book(.htm)でも同様の現象が起きておりました。
ブレイクポイントを設定しても全くかすりもしませんでした。
Excelをセーフモードで立ち上げる前にアドインを全て取り外してみました。そうしましたら全てが上手く処理出来る様になってしまいました。
ローカルでも共有ファイルサーバー上でも上手く動いています。
さらに、その後に取り外したアドインを組み入れても処理されるようになりました。
いったい何だったんでしょう??
No.3
- 回答日時:
>いったい何だったんでしょう??
特にエラーが出るわけでもなく、BeforeSaveイベントが起きないという現象だったのですよね。
アドインが関係していたとしても、『その後に取り外したアドインを組み入れても処理されるようになりました。』との事ですし、
私自身、同事象に遭遇した事はありませんので原因は解りかねます。
取り敢えず、不具合が解消したようで良かったですね。
本ケースのような、通常では発生しないはずの不具合の場合、まずはどのレベルで障害が発生しているかの見極めが必要だという事なのでしょう。
・特定Bookでの現象か。 …新規Bookで確認してみる。
・特定ユーザー環境での現象か。 …セーフモードあるいは別ユーザーでログインして確認してみる。
・特定端末での環境か。 …(可能なら)別端末で確認してみる。
など。(OSやOfficeのバージョン差異やネットワーク環境が絡めばもっと複雑になるでしょうけど)
そういった誘導的なアドバイスができれば、もうちょっと早く解消できたかもしれなかったですね。失礼しました。
end-uさん、本当にありがとうございました。
>そういった誘導的なアドバイスができれば、もうちょっと早く解消できたかもしれなかったですね。失礼しました。
↓
そんなとんでもないですよ。色々な段階のエラー解消法を教えてくれたので、解決に向かうことが出来たのですから。
今度不具合が出たら同様の手順で調べてみます。
今日もきちんと動作しており、ホッとしております。
ホントにありがとうございました。
No.1
- 回答日時:
Worksheetは1つしかないのでしょうか?
そのThisWorkbookモジュールのコードではRangeの親が指定されていないので、その時のActiveSheetになってしまいますが、
その点は大丈夫ですか?
また、開いた時に最終保存日時を取れば良いだけのような気もしますが、どうなのでしょう。
Private Sub Workbook_Open()
MsgBox ThisWorkbook.BuiltinDocumentProperties("Last Save Time")
End Sub
この回答への補足
ご回答ありがとうございます。
savaを記載しているモジュール以外にはsheetの指定をしておりますが、実際の運用は1book-1sheetですので大丈夫かと…。
sheet指定していたりしてなかったり、気まぐれな作りになってしまってましてスミマセン。。。
ちなみに、sheet指定の記載も試しては見ましたが、同じ動きです。
>また、開いた時に最終保存日時を取れば良いだけのような気もしますが、どうなのでしょう。
とコードを記載していただきましてありがとうございました。
しかしながら、ご提案の開いた際に最終保存日時の取得ではホームページに公開する際に、前回の更新日時をお知らせすることになってしまいますので適用できないのです。。。
いただいたコードはMsgBoxですから編集者に対しての確認メッセージになっているみたいですが、私が書いているSub MSGDISP()もきちんと動作はしております。(これはおまけみたいなものですけど…)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
読み取り専用ファイルを上書き...
-
onedriveで同期解除をしたら、...
-
沢山のフォルダにあるファイル...
-
USBデータの消失
-
hamachiにログイン出来ません
-
system32にある、膨大なDLL。...
-
ファイルをコピーしたとき、も...
-
WindowsからSSHでサーバーにあ...
-
論文に載せるグラフを作成したい
-
win10 ファイルを自由に移動配...
-
ショットナビクレスト ゴルフ場...
-
WindowsUpdate KB2823324
-
Windowsファイルエクスプローラ...
-
アクセス権初期化
-
Edgeでダウンロード状況表示画...
-
入力/出力エラーですというファ...
-
USBメモリの表示する「残り時間」
-
vlan internal allocation poli...
-
Mailの署名、ルールが戻りません
-
USB内のフォルダが「ファイル」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAで作成したマクロをxl...
-
エクセルでファイルの最終更新...
-
Excel VBAでほかのアプリケーシ...
-
読み取り専用ファイルを上書き...
-
CImageのファイル名を指定して保存
-
VBAで、強制保存してブックを閉...
-
Corel Digital Studioの動画をS...
-
【Excel VBA】自動的にバックア...
-
VB.NETでEXCELファイルを開き、...
-
コマンドプロンプトでデスクト...
-
VSCodeの自動保存の2か所を無...
-
Pivot table で集計されたデー...
-
webページの特定の部分だけ消し...
-
VBAでPDF作成をしたあと、指定...
-
VBScriptで日本語が変です
-
メモ帳の保存場所
-
タイトルバーやメニューバーの...
-
ASPでファイルを保存するダイア...
-
至急教えてください!プログラ...
-
意味不明のタグが挿入されてい...
おすすめ情報