「vba セルにナウ関数挿入」
といった検索キーワードでアクセスがありました。
Excel VBAを使って、現在の日付と時刻を表すシリアル値を返すワークシート関数「NOW」をセルに入力するには、
どのようなコードを書けばいいのかを調べていらしたのでしょう。
セルにNOW関数を入力するサンプルマクロ
以下のExcelマクロを実行すると、アクティブなセルにNOW関数が入力されて、列幅が自動調整されます。
ActiveCell.Formula = "=NOW()"
ActiveCell.EntireColumn.AutoFit
End Sub
セルにNOW関数を入力しているのは、
ActiveCell.Formula = "=NOW()"
の行です。
ただし、このコードを実行したときにアクティブセルの列幅が狭い場合には、「####」表示になってしまいます。
そのため、列幅を自動調整するコード
ActiveCell.EntireColumn.AutoFit
を「ActiveCell.Formula = "=NOW()"」の後ろに入れています。
セルの数式もVBAから見ると文字列
RangeオブジェクトのFormulaプロパティに、文字列「=NOW()」を指定することで、セルにNOW関数を入力できます。
セルに数式を手入力する場合、文字列「=NOW()」を入力して[Enter]キー等で確定すると、日時がセルに表示されます。
その文字列「=NOW()」をVBAから入力するだけです。
VBAとExcelそれぞれの役割を理解できていない場合、Range.Formulaプロパティで取得/設定できるのは文字列にすぎないという事実がモヤモヤするかもしれません。
Excelのセルに、「=NOW()」を入力すればExcelによって計算式であると認識されて、現在の日時データがセルに表示されますが、VBAから見たときに「=NOW()」は文字列にすぎないことに意識を向けたください。
最終更新日時:2024-03-26 08:47
Home » Excel VBA Rangeオブジェクト » セル数式 » VBAでNOW関数をセルに入力する