[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『消去したい』(おじさん)
おたずねします。
×がついているセルを見て左の値を消去するコードを作成したいのですが最初の行の×だけ消えて残りはスルーします。
間違いの箇所を教えてください。
Sub KESIKOMI()
If Range("D4") = "×" Then Range("C4").Value = "" ElseIf Range("D5") = "×" Then Range("C5").Value = "" ElseIf Range("D6") = "×" Then Range("C6").Value = "" ElseIf Range("D7") = "×" Then Range("C7").Value = "" ElseIf Range("D8") = "×" Then Range("C8").Value = "" ElseIf Range("D9") = "×" Then Range("C9").Value = "" ElseIf Range("D10") = "×" Then Range("C10").Value = "" ElseIf Range("D11") = "×" Then Range("C11").Value = "" ElseIf Range("D12") = "×" Then Range("C12").Value = "" ElseIf Range("D13") = "×" Then Range("C13").Value = "" End If End Sub
< 使用 Excel:Excel2013、使用 OS:Windows7 >
ElseIf を使っているからです
それぞれ独立したIF文にしましょう
(渡辺ひかる) 2019/11/21(木) 10:07
For〜Nextを使う方法もあります。
Sub KESIKOMI()
Dim i As Long
For i = 4 To 13 If Range("D" & i).Value = "×" Then Range("C" & i).Value = "" Next
End Sub (bi) 2019/11/21(木) 10:14
渡辺ひかる様 ありがとうございます、やっと理解できました。 以下のように書きましたら動きました。 If Range("D4") = "×" Then Range("C4").Value = "" End If If Range("D5") = "×" Then Range("C5").Value = "" End If If Range("D6") = "×" Then Range("C6").Value = "" End If If Range("D7") = "×" Then Range("C7").Value = "" End If If Range("D8") = "×" Then Range("C8").Value = "" End If If Range("D9") = "×" Then Range("C9").Value = "" End If If Range("D10") = "×" Then Range("C10").Value = "" End If If Range("D11") = "×" Then Range("C11").Value = "" End If If Range("D12") = "×" Then Range("C12").Value = "" End If If Range("D13") = "×" Then Range("C13").Value = "" End If bi様 短いコードに感激です。 採用させていただきます。ありがとうございました。
(おじさん) 2019/11/21(木) 14:02
もう解決済みですが、下記の方法でも可能です。
Sub KESIKOMI()
If Range("D4") = "×" Then Range("C4").Value = "" If Range("D5") = "×" Then Range("C5").Value = "" If Range("D6") = "×" Then Range("C6").Value = "" If Range("D7") = "×" Then Range("C7").Value = "" If Range("D8") = "×" Then Range("C8").Value = "" If Range("D9") = "×" Then Range("C9").Value = "" If Range("D10") = "×" Then Range("C10").Value = "" If Range("D11") = "×" Then Range("C11").Value = "" If Range("D12") = "×" Then Range("C12").Value = "" If Range("D13") = "×" Then Range("C13").Value = ""
End Sub (bi) 2019/11/21(木) 14:13
これが一番短いですかね
Sub KESIKOMI()
Range("C4:C13").Value = [if(D4:D13="×","",C4:C13)]
End Sub
(渡辺ひかる) 2019/11/21(木) 14:39
渡辺ひかるさんのだとD列が×でなく、C列に何も入力されていない場合、0になってしまわないか? (ねむねむ) 2019/11/21(木) 14:51
ねむねむさん
確かに・・・
スマートじゃないですけど、こうですかね
Range("C4:C13").Value = [if(D4:D13="×","",if(len(C4:C13)=0,"",C4:C13))]
でも質問者さんの元のコードが Range("C4").Value = "" じゃなくて Range("C4").ClearContents だったら これも使えませんね
(渡辺ひかる) 2019/11/21(木) 15:06
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.