人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VBAで質問なのですが、EXCELの複数のセルに8/20や8/15等のさまざまな日付が入っていて、それを全て強制的に8/1にしたいのですが、どうしたらいいのでしょうか?

WINDOWS7 EXCEL2010です。

●質問者: shotomo
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Mook
●100ポイント ベストアンサー

8月限定なのかどうか不明ですが、取りあえずのサンプルです。

Sub Sample()
 Dim r As Range
 For Each r In ActiveSheet.UsedRange
 If IsDate(r.Value) = True Then
 r.Value = CDate("8/1")
 End If
 Next
End Sub

shotomoさんのコメント
すみません。8月が限定ではないです。

shotomoさんのコメント
出来ました。ありがとうございました。 Sub test() Dim r As Range For Each r In ActiveSheet.UsedRange If IsDate(r.Value) = True Then Dim m m = Month(r) p = m & "01" Dim strMOTO As String Dim 基準日 As Date strMOTO = p 基準日 = CDate(Format(strMOTO, "@@/@@")) r.Value = 基準日 End If Next End Sub

Mookさんのコメント
そうであれば、こんなのでも。 Sub test2() Dim r As Range For Each r In ActiveSheet.UsedRange If IsDate(r.Value) = True Then r.Value = DateSerial(Year(r.Value), Month(r.Value), 1) End If Next End Sub

shotomoさんのコメント
さすがです。すっきりですね。ありがとうございました。勉強します
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ