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

エクセルの置換を使って特定の文字を消すマクロを作ろうとしています。
マクロの記録を使って置換する作業を記録して、再度使おうとすると何も反応しません。
特にエラーも出ないので、なぜマクロが実行しないのかが分かりません。

消したい文字:1900/1/0 → 置換後:空白

Sub Macro1()
'
' Macro1 Macro
'

'
Cells.Replace What:="1900/1/0", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub

記録した実際のコードです。
実行出来るように修正方法ご存知の方いらっしゃいましたら、教えて頂きたいです。
よろしくお願い致します。

A 回答 (5件)

多分ですが、書式が「yyyy/m/d」になっている為だと思います。


以下のようにしたら、書式も標準に出来ます。
-----------------------------------------------------------------------------------------
Sub Macro2()
Dim 最終行 As Long
Dim 最終列 As Long
Dim 行 As Long
Dim 列 As Long
With ActiveSheet.UsedRange
最終行 = .Rows(.Rows.Count).Row
最終列 = .Columns(.Columns.Count).Column
End With
For 行 = 1 To 最終行
For 列 = 1 To 最終列
If Cells(行, 列).NumberFormatLocal = "yyyy/m/d" Then
If Cells(行, 列).Text = "1900/1/0" Then
Cells(行, 列).ClearContents
Cells(行, 列).NumberFormatLocal = "G/標準"
End If
End If
Next
Next
End Sub
-----------------------------------------------------------------------------------------
    • good
    • 0
この回答へのお礼

おっしゃる通りでした。
記載していただいたマクロを使用したら、理想の形に表示する事が
出来ました。
ありがとうございました!

お礼日時:2017/10/08 22:55

こんばんは!



VBAで日付を検索する場合、注意が必要です。
補足を拝見すると、おそらく数式によって表示されているのではないかと思われます。
そうなるとかなり厄介です。

一気に!という訳にはいきませんが・・・
一例です。

Sub Sample1()
Dim FoundCell As Range, FirstCell As Range
Dim myRng As Range
Set FoundCell = Cells.Find(what:="1900/1/0", LookIn:=xlValues, lookat:=xlWhole)
If Not FoundCell Is Nothing Then
Set myRng = FoundCell
Set FirstCell = FoundCell
Do
Set FoundCell = Cells.FindNext(after:=FoundCell)
If FoundCell.Address = FirstCell.Address Then Exit Do
Set myRng = Union(myRng, FoundCell)
Loop
If Not myRng Is Nothing Then
myRng.ClearContents
End If
End If
End Sub

これでなんとか日付セルが「0」の場合、そのセルは消去されると思います。m(_ _)m
    • good
    • 0

…その消したい対象があるセルって、入力されている値または計算結果が「0」、そして表示形式が「短い日付形式」とかになっていませんか?


それ…
入力されている「0」を削除の対象にしないとダメなパターン(´・ω・`)
演算結果は「置換」の対象になりません。
    • good
    • 0

前後にスペースは入っていませんか?


そのセルの書式は何になっていますか?
    • good
    • 0

「1900/1/0」と表示されているセルを選択したときに「数式バー」にはどのように表示されますか?

    • good
    • 0
この回答へのお礼

数式バーには
1900/1/0と表示されています。

お礼日時:2017/10/08 22:15

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