アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。いつも質問ばかりですみません。
今、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
のようになるのですが、このプロシージャーを実行しても、うまく置換できません。

どのように記述したら、できるのか、教えていただけるとうれしいです。

よろしくお願いいたします。

A 回答 (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 になります。
    • good
    • 0
この回答へのお礼

こんにちは~。ありがとうございました~。できました。できました。(^^) なるほど、いろいろなやり方があるものですね。とっても勉強になりました。m(__)m

お礼日時:2004/02/26 23:57

エクセルのヘルプをそのまま使うと、



Worksheets("Sheet1").Columns("B").Replace _
What:="2004/5", Replacement:="2004/6", _
SearchOrder:=xlByColumns

のように書くみたいですよ。

マクロのヘルプもちゃんと使ってみてくださいね。
    • good
    • 0
この回答へのお礼

早速の回答、ありがとうございました。
おっしゃる通りに記述してみたのですが、全く変わらないのです。papayukaさんのおっしゃるように、多分日付というのが特殊なんだろうと思います。

マクロのヘルプ、どうしたら、回答のようなヘルプが出せるのですか? replace でF1をおしても、hana-hana3さんが書かれているようなヘルプはでてこなかったのですが。。

でも、早々に回答いただいて、とってもうれしかったです。また、よろしくお願いします。m(__)m

お礼日時:2004/02/26 23:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!