Applications)のFormat関数を使うと、日付データの日付部分を2桁の書式にした文字列を取得できることをご紹介しました。"dd")」といったコードで、アクティブセルに入力されている日付データの日付部分だけをdd形式の2桁の文字列として取得できますが、この2桁の文字列をセルに代入する場合、考えるべきことが増えます。[スポンサードリンク]2桁の日付をセルに入力しようとして上手く動かないサンプルマクロ例えば「2017/5/5」という日付データの入力されたセルがアクティブなときに、書式設定が初期状態である右隣のセルに、「05」という2桁の日付が入力されることを期待して以下のSubプロシージャを実行すると、「5」が入力されてしまいます。SubExcelでは、書式を設定していないセルに、ハイフンなしの電話番号を市外局番から入力したようなときには、先頭の「0」がなくなってしまいます。同じことが起きたわけです。表計算ソフトであるExcelは、数値とみなし得る文字列は自動的に数値と判断します。このExcelの仕様は、VBAからセルにデータを入力する際も関係します。2桁の日付をセルに入力するサンプルマクロ以下のようなSubプロシージャにすればアクティブなセルの右隣のセルに、アクティブセルの日付データの日付部分だけを2桁にした文字列を入力できます。Sub先頭についた数字の「0」を残すためには、[セルの書式設定]ダイアログなどで文字列書式を設定します。VBAから操作する場合も同じことです。RangeオブジェクトのNumberFormatLocalプロパティに、「@」(アットマーク)を指定しておけば、文字列書式が設定されて、Format関数で返された「05」のような文字列をそのまま入力できます。Officeの使い方などを紹介し続け(2012年頃からはVBA関連記事が多め)、毎日5万人の方にご覧いただいています。