Excel VBA 日付形式: 区切り文字としてハイフンを使用すると、奇妙な置換結果が返される

Excel VBA 日付形式: 区切り文字としてハイフンを使用すると、奇妙な置換結果が返される

エクセル2007。

今日の日付を dd-mmm-yy 形式で現在のセルに入力するマクロが必要です (例: 30-Oct-14)。

私が持っているコードはシンプルです:

'ActiveCell.Value = Format(Now(), "dd-mmm-yy")'

何らかの理由で、ハイフンの代わりにスペースを含む「30 Oct 14」が返されます。

同様の形式は正しく機能します。例:

dd-mm-yy は 30-10-14、
dd~mmm~yy は 30~Oct~14 となります。

セルの実際の値は「10 30 2014」に設定されています

誰か簡単な回避策を教えてくれませんか?また、可能であれば、なぜこのようなことが起こるのか説明してもらえますか?

答え1

Excel は、マクロで入力したテキストを自動的に日付に変換し、日付形式を適用します。Excel でテキストとして表示するように強制するには、日付文字列の前に一重引用符を追加します。

ActiveCell.Value = "'" + Format(Now(), "dd-mmm-yy")

または、まずセルの書式をテキスト タイプに設定します。

ActiveCell.NumberFormat = "@"
ActiveCell.Value = Format(Now(), "dd-mmm-yy")

関連情報