エクセルの置換を使って特定の文字を消すマクロを作ろうとしています。
マクロの記録を使って置換する作業を記録して、再度使おうとすると何も反応しません。
特にエラーも出ないので、なぜマクロが実行しないのかが分かりません。
消したい文字: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
記録した実際のコードです。
実行出来るように修正方法ご存知の方いらっしゃいましたら、教えて頂きたいです。
よろしくお願い致します。
No.4ベストアンサー
- 回答日時:
多分ですが、書式が「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
-----------------------------------------------------------------------------------------
No.5
- 回答日時:
こんばんは!
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
No.3
- 回答日時:
…その消したい対象があるセルって、入力されている値または計算結果が「0」、そして表示形式が「短い日付形式」とかになっていませんか?
それ…
入力されている「0」を削除の対象にしないとダメなパターン(´・ω・`)
演算結果は「置換」の対象になりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルマクロで教えてください 2 2022/05/04 09:07
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) パーソナルXLSBのfuctionを呼び出すと「Functionが定義されていません」のエラーになる 2 2022/08/22 22:51
- Access(アクセス) エクセルのマクロについて教えてください。 2 2023/02/04 14:20
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/10 14:24
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/04 12:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル マクロ オートフィ...
-
エクセルで特定の文字列が入っ...
-
【Excel関数】UNIQUE関数で"0"...
-
結合されたセルをプルダウンの...
-
excelのデータで色つき行の抽出...
-
エクセルで昨日までの日付デー...
-
[EXCEL]ボタン押す→時刻が表に...
-
EXCELで最後の行を固定
-
excel 小さすぎて見えないセル...
-
エクセル2016で時間を入力して...
-
直近の5個の平均を求めたい
-
Excel グラフのプロットからデ...
-
(VBAにて)列のセルの結合について
-
エクセル 上下で列幅を変えるには
-
エクセル 数字のみ残したい
-
Excel 時刻の並び替え
-
VBAで色の付いているセルの行削除
-
エクセル マクロで数値が変っ...
-
特定の文字がある行以外を削除...
-
色付き行の非表示について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の文字列が入っ...
-
エクセル マクロ オートフィ...
-
【Excel関数】UNIQUE関数で"0"...
-
AのセルとB行を比較して、一致...
-
結合されたセルをプルダウンの...
-
エクセル マクロで数値が変っ...
-
[EXCEL]ボタン押す→時刻が表に...
-
エクセル 上下で列幅を変えるには
-
excelのデータで色つき行の抽出...
-
excel 小さすぎて見えないセル...
-
Excel グラフのプロットからデ...
-
エクセルVBA 最終行を選んで並...
-
特定の文字がある行以外を削除...
-
EXCELで最後の行を固定
-
EXCELマクロを使い、空白行では...
-
エクセル2016で時間を入力して...
-
VBAで色の付いているセルの行削除
-
エクセル 時間の表示形式AM/PM...
-
連続データが入った行の一番右...
-
A1に入力された文字列と同じ文...
おすすめ情報