VBA初心者です。
VBA初心者です。 D5:G5にダブルクリックで〇,×,/,空欄を選択し(以下2000行まであり)H5に(以下行単位で)全て〇か/なら〇、ひとつでも×があれば×、ひとつでも空欄があれば空欄のままというコードを組みたい場合はどうすればよいでしょうか。 ダブルクリックの選択は既にできているので条件分岐の方法だけで大丈夫です。 今現在、IF関数を使って表示していますが関数を消されたくなくてロックを掛けたのですが×があった場合に後から×はそのままでコマンドボタンを使用してセルに〇をつけるとしたかったのでロックを掛けてしまうと〇がつけられなくて関数ではなくVBAで対応したいです。 説明がうまくなくて申し訳ありませんがよろしくお願いします。
Visual Basic・55閲覧・500
ベストアンサー
条件分岐箇所だけです。 VBAでもワークシート関数をそのまま使うことができます。 質問者さんが対象行をどう扱うのか分からないので変数rに5を入れておきます。使いやすいように置き換えてください。 Dim r As Long r = 5 If WorksheetFunction.CountBlank(Range("D" & r & ":G" & r)) > 0 Then Range("H" & r).ClearContents ElseIf WorksheetFunction.CountIf(Range("D" & r & ":G" & r), "×") > 0 Then Range("H" & r).Value = "×" Else Range("H" & r).Value = "〇" EndIf
質問者からのお礼コメント
思い通りの作動となりました。 ありがとうございます!
お礼日時:7/3 0:43