『セルの値が0の場合』(katanohosi) 数値を表に代入して記載させたのですが、0は不要なため、下記の構文で 削除させようとしています。 普通に走らせると0が残ってしまいます。 ステップインで進めると、ちゃんと0を消してくれます。 ワンテンポ遅らせるためにDoEventsを記載しましたが、状況は変わりません。 何が原因か分からず困っています。 どなたか教えて下さい。よろしくお願いします。 DoEvents Workbooks(strWorkBookName3).Activate If Sheets(yd).Range("D15") = "0" Then Range("D15") = "" If Sheets(yd).Range("D20") = "0" Then Range("D20") = "" If Sheets(yd).Range("C32") = "0" Then Range("C32") = "" If Sheets(yd).Range("D32") = "0" Then Range("D32") = "" If Sheets(yd).Range("C44") = "0" Then Range("C44") = "" If Sheets(yd).Range("D44") = "0" Then Range("D44") = "" If Sheets(yd).Range("C47") = "0" Then Range("C47") = "" If Sheets(yd).Range("D47") = "0" Then Range("D47") = "" If Sheets(yd).Range("C50") = "0" Then Range("C50") = "" If Sheets(yd).Range("D50") = "0" Then Range("D50") = "" If Sheets(yd).Range("K17") = "0" Then Range("K17") = "" If Sheets(yd).Range("L17") = "0" Then Range("L17") = "" If Sheets(yd).Range("K17") = "0" Then Range("I17") = "" If Sheets(yd).Range("L17") = "0" Then Range("J17") = "" If Sheets(yd).Range("H32") = "0" Then Range("H32") = "" If Sheets(yd).Range("I32") = "0" Then Range("I32") = "" If Sheets(yd).Range("J32") = "0" Then Range("J32") = "" If Sheets(yd).Range("G44") = "0" Then Range("G44") = "" If Sheets(yd).Range("H44") = "0" Then Range("H44") = "" If Sheets(yd).Range("G45") = "0" Then Range("G45") = "" If Sheets(yd).Range("H45") = "0" Then Range("H45") = "" If Sheets(yd).Range("G47") = "0" Then Range("G47") = "" If Sheets(yd).Range("H47") = "0" Then Range("H47") = "" If Sheets(yd).Range("F15") = "0" Then Range("F15") = "" If Sheets(yd).Range("F20") = "0" Then Range("F20") = "" If Sheets(yd).Range("D23") = "0" Then Range("D23") = "" If Sheets(yd).Range("D26") = "0" Then Range("D26") = "" If Sheets(yd).Range("F32") = "0" Then Range("F32") = "" < 使用 Excel:Excel2013、使用 OS:Windows10 > ---- 別の場所で0を入れているということはないか? (ねむねむ) 2021/02/12(金) 11:17 ----  >0は不要なため  オプションでの設定ではダメなんですか。 (SIRU) 2021/02/12(金) 11:31 ---- ActiveSheetがSheets(yd)でないとかはないですか? (tkit) 2021/02/12(金) 11:39 ---- 直接の回答ではありません。 シートは指定しましょう。 プロパティは明示しましょう。(Value/Text/Formula) ◯.Value = "" は ◯.Clear または ◯.ClearContents の方がいいのでは? (OK) 2021/02/12(金) 11:46 ---- ねむねむさま ありがとうございます。 確認しましたが、追加の書込みはありませんでした。 (katanohosi) 2021/02/12(金) 12:39 ---- SIRUさま ありがとうございます。 他で0の記載が必要な箇所がありますので、オプション設定は出来ないのです。 (katanohosi) 2021/02/12(金) 12:41 ---- tkitさま ありがとうございます。 シートの指定に間違いはありませんでした。 (katanohosi) 2021/02/12(金) 12:42 ---- ありがとうございました。 ご指摘いただいた箇所の修正で、うまく行きました。 ありがとうございます!! シートは指定しましょう。 プロパティは明示しましょう。(Value/Text/Formula) ◯.Value = "" (katanohosi) 2021/02/12(金) 12:44 ---- こういう、左辺と右辺のセルアドレスが違うのは、 If Sheets(yd).Range("K17") = "0" Then Range("I17") = "" If Sheets(yd).Range("L17") = "0" Then Range("J17") = "" ケアレスミスなのか、意図的なのかわからないんですけど、 大丈夫なんでしょうか? (´・ω・`) 2021/02/12(金) 13:13 ---- 試してないけど、1つずつ書くのではなく、ループ処理でいいんじゃないですかね Sub さんぷる() Dim tmpRNG As Range, bufRNG As Range Stop 'ブレークポイントの代わり For Each tmpRNG In Worksheets("hoge").Range("D15,F15,I18:L18,D20,F20,D23,D26,C32,F32,H32:J32,C44:D44,G44:H44,B47,D47,G47:H47,C50:D50") If tmpRNG.Text = 0 Then If bufRNG Is Nothing Then Set bufRNG = Workbooks("aaa").Worksheets("bbb").Range(tmpRNG.Address) Else Set bufRNG = Union(bufRNG, Workbooks("aaa").Worksheets("bbb").Range(tmpRNG.Address)) End If End If Next If Not bufRNG Is Nothing Then bufRNG.ClearContents End Sub (もこな2) 2021/02/13(土) 09:45