- 締切済み
データの置換 エクセルの操作とVBAマクロ…???
A列に 17:00 と表示されているセルを 16:45 に 置換したいです。 普通にエクセルの操作(編集からダイアログボックスを表示して)行うと普通に実行されるのですが、その操作を記録したマクロを実行しても何も起こらないのです。(エラーも出ません) VBAには↓のとおり記録されました。 Columns("A:A").Select Selection.Replace What:="17:00", Replacement:="16:45", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False 実は、17:00 と表示されているセルに入力されているデータは、17:00:00 であり、ユーザー定義の書式設定で h:mm の形式で表示されています。 元データの書式設定を 17:00:00 (時刻)に変えてもやはり同様で、エクセル操作ではうまくいきますがマクロだと何も起こりません。 試しに元データの書式設定を標準(シリアル値)に変えてやってみるとマクロでも置換されましたが、実際の業務では大変不便そうです。 マクロを実行する時にはユーザー定義や時刻の書式は認識されないのでしょうか? それとも書式に原因を求めるのが間違ってるのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
"17:00"葉文字列と解釈されているのだろう、と直ぐ気がついたよ。 時刻シリアル値でしていすればよい。 TimeSerial(17, 0, 0)でもよい。 Sub test01() Columns("A:A").Select Selection.Replace What:=TimeValue("17:00"), Replacement:=TimeValue("16:45"), LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End Sub でやると旨くいく。