こんにちは。いつも質問ばかりですみません。
今、excell の VBAの勉強をしているのですが、たとえば、B列に2004/5/3 とか、2004/5/5とか、5月の日付ばかりはいっていたとして、その2004/5の部分を2004/6に置換したいとします。
それを、マクロでやらせてみて、VBAを見ると
Sub Macro9()
Cells.Replace What:="2004/5", Replacement:="2004/6", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
のようになるのですが、このプロシージャーを実行しても、うまく置換できません。
どのように記述したら、できるのか、教えていただけるとうれしいです。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
Excelは普通に日付を打つとシリアル値という数値になりますので、上手く動かないのでしょう。
Replace メソッドでのやり方は知らないので代替案です。
セル範囲を指定してから下記を実行して見て下さい。
(試すのはテスト環境で)
Sub Test()
For Each r In Selection
r.Value = DateSerial(Year(r.Value), Month(r.Value) + 1, Day(r.Value))
Next r
End Sub
実行するたびに 1月ずつ加算されます。
ただし、2004/5/31 に対して実行すると 2004/6/31 は無いので 2004/7/1 になります。
また、2004/12/31 に対して実行すると 2004/13/31 は無いので 2005/1/31 になります。
こんにちは~。ありがとうございました~。できました。できました。(^^) なるほど、いろいろなやり方があるものですね。とっても勉強になりました。m(__)m
No.1
- 回答日時:
エクセルのヘルプをそのまま使うと、
Worksheets("Sheet1").Columns("B").Replace _
What:="2004/5", Replacement:="2004/6", _
SearchOrder:=xlByColumns
のように書くみたいですよ。
マクロのヘルプもちゃんと使ってみてくださいね。
早速の回答、ありがとうございました。
おっしゃる通りに記述してみたのですが、全く変わらないのです。papayukaさんのおっしゃるように、多分日付というのが特殊なんだろうと思います。
マクロのヘルプ、どうしたら、回答のようなヘルプが出せるのですか? replace でF1をおしても、hana-hana3さんが書かれているようなヘルプはでてこなかったのですが。。
でも、早々に回答いただいて、とってもうれしかったです。また、よろしくお願いします。m(__)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルマクロで教えてください 2 2022/05/04 09:07
- Visual Basic(VBA) Excel vba で1と10を正確に判断させる方法を教えてください。 TからU列に1と入力があれば 3 2022/12/26 16:54
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) vbaで条件付き書式を設定したときの適用範囲について 1 2023/07/17 23:14
- Excel(エクセル) Excel VBA 空白行があるセル範囲に色を付ける 3 2022/06/13 15:58
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA 作業後に選択範囲...
-
別のフォームで記述している関...
-
Sub Auto_Open() 実行されない
-
続き…エクセルvba ①SUBメニ...
-
Excel vba 条件分岐 空白セルが...
-
エクセル マクロ 別シートから...
-
最小化ボタンで最小化したフォ...
-
VBAでのユーザフォームの表示有...
-
ステップモードの動作確認方法
-
MATLABの乱数生成関数 rand( ) ...
-
ExcelVBA ドロップボックスで月...
-
メニューバーのイベントが2回...
-
エクセルで条件をつけて図形を...
-
エクセルでの6ヶ月平均の出し方
-
ワードで、グレーの部分しか入...
-
Switchのわんことあそぼ、めざ...
-
フルスクリーンモードで開いたP...
-
ホームページにグーグルマップ...
-
ホームページビルダーで価格.c...
-
Word 2013でたくさんのページを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA 作業後に選択範囲...
-
別のフォームで記述している関...
-
Sub Auto_Open() 実行されない
-
最小化ボタンで最小化したフォ...
-
ACCESSで別DBにあるクエリを...
-
Excelで、チェックボックスにチ...
-
円の中に等間隔に線を引くには
-
VBAでのユーザフォームの表示有...
-
エクセル マクロ 別シートから...
-
Excel vba 条件分岐 空白セルが...
-
ascW関数の結果がおかしい
-
Excelのマクロ実行後に動作が重...
-
メニューバーのイベントが2回...
-
ExcelVBAで毎月月初の最初にBoo...
-
Excel VBAのステップイン
-
ExcelVBA 日付変更
-
excel2010でボタンが反応しなく...
-
エクセルVBAのコードで質問です...
-
ExcelVBA ドロップボックスで月...
-
excelのvbaを使って日付を置換...
おすすめ情報