- ベストアンサー
Excelの印刷フッターの日付形式
Excelの印刷条件の設定でレフトフッターに日付+時間を表示させるのですが、この日付と時間の形式がWindowsのコントロールパネルの「地域のオプション」で設定した形式に自動的に設定されるようになっています(と思います)。これをExcel上から自分の好みの形式に変換する方法をご存知でしたら教えていただけませんか? 好みの形式は 06/28/2001 06:15:49 PM JST です。できればマクロでの記述方法を教えたいただければ幸いです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
参考になるものがありました。VBのコード解説ですがVBAでもOKのはずです。 GetTimeZoneInformationがキーワードです。 http://www.vbvbvb.com/jp/gtips/0701/gGetTimeZoneInformation.html http://www3.justnet.ne.jp/~takahiro7/api001.html
その他の回答 (3)
- bin-chan
- ベストアンサー率33% (1403/4213)
まず、前回答の捕捉ですが、変数に値をセットした瞬間のものが 「ずっと」保持されますからコード処理日時がすべてのページに 印刷されることをご確認ください。 > ところで、Windowsに設定されているタイムゾーンを読み取って [コントロールパネル]-[日付と時刻]-[タイムゾーン]ですよね。 やり方があるはずですが、今すぐには方法がわかりません。 調べて、わかれば補足しますが、 お急ぎでしたら新たな質問で出して頂いたほうが確実と思います。 > 全世界でこのマクロを使うことになると思いますので。 ご自分の作成したものがとはうらやましいですね。 ではでは。
- bin-chan
- ベストアンサー率33% (1403/4213)
すみません。下から3行目が間違ってました。 誤).LeftFooter = "&D&T" 正).LeftFooter = strDateTime
お礼
早速のご回答ありがとうございます。教えていただいたマクロの中で strDateTime = Format(Now, "MM/dd/yyyy hh:mm:ss AM/PM") というふうにすることでほぼ目的を達成することができました。 ところで、Windowsに設定されているタイムゾーンを読み取って、それをもとに 時刻の最後にJSTとかPSTを付けることはできないでしょうか。小生、外資系の(小さな)会社で全世界でこのマクロを使うことになると思いますので。
- bin-chan
- ベストアンサー率33% (1403/4213)
まず「マクロの記録」で設定なさってみてください。 With ActiveSheet.PageSetup (略) .LeftFooter = "&D&T" (略) End With のようなコードが記述されるでしょうから"&D&T"の部分に 文字列変数に放り込んだ値をセットすれば良いでしょう. Dim strDateTime as String strDateTime = Format(Now, "書式はテストしてね") With ActiveSheet.PageSetup (略) .LeftFooter = "&D&T" (略) End With
お礼
bin-chanさん、教えていただいたAPI関数を使うことで、タイムゾーンの取得うまくいきました。ありがとうございます。これで月曜日朝一番に社内で公開することができそうです。本当に助かりました。今後ともよろしくお願いいたします。