質問: 現在sheet1にある表をsheet2に転記してゆくVBAを作成しております。sheet1にある日付データセルA1(日のみ)が入っているセルと月初を求めるVBA(DateSerial(Year(Date), Month(Date), 1))を加算して西暦/月/日にしたいのです。 例えば、DateSerial(Year(Date), Month(Date), 1)の答は、2005/05/01になってきます。そこに日付データセルA1が20だとすれば、表示は、2005/05/20となると思います。それをsheet2 セルA1に表示させたいのです。 よろしくお願いします。
回答: あまり、こういうのは考えたこともありませんでしたが、こんな方法もあるかなって思います。#3さんのエラー処理は、こんな方法でできると思います。 OS側の設定の日付の書式のプロパティも変えてみましたが、問題はありません。私の予測の付かないものは、分からないし、それは、使う人のお任せになってしまいますね。 Sub test() Dim myDate As Variant With Sheet2.Range("A1") .NumberFormatLocal = "yyyy/mm/dd" myDate = Format$(Date, "yyyy/mm/") & Sheet1.Range("A1").Text If IsDate(myDate) Then .Value = myDate End With End Sub myDate をCDate(myDate)としないのは、セルの書式を変えているので、そのまま、自動キャストが使えるって考えました。