dポイントプレゼントキャンペーン実施中!

エクセルvbaでチェックボックスのCaptionの比較が上手く動きません。
ユーザーフォームのチェックボックスのCaptionの文字列とセルの文字列を比べ、一致しなければその行を削除するvbaを作成しましたが、何故か全ての行が削除されます。(一致していると思われる行も全てです)
原因がわかりません。何が原因か教えてください。お願いします。

概要
チェックボックスは4つあります。(chb1からchb4まで。CaptionをAからDとします。)E列のセルの文字列とチェックボックスのCaptionの文字列が一致しなければその行を削除を一番下から順に行いたいです。(E列にはランダムにAからDの文字列が並んでいます。シート名"オール")"オール"をコピーしてE列の該当しない列を削除し、Aだけのシート、Bだけのシートという具合にチェックが入っているシートを作成したかったのですが…

    Dim i As Long 'チェックボックス用の変数
    Dim s As Long '下から順番
Dim Maxrow As Long'一番下

        For i = 1 To 4

If Controls("chb" & i).Object.Value = True Then

               
                Worksheets("オール").Copy After:=Worksheets("オール")
                ActiveSheet.name = Controls("ChB" & i).Caption

            End If

           For s = MaxRow To 2 Step -1
                If Cells(s, 5).Value <> Controls("ChB" & i).Caption Then
                Rows(s).Delete
end if
        Next s
next i

End Sub

A 回答 (1件)

質問文の提示されている値で検証を求めるのも良いのですが、気になるのはセルの値と表示に相違があるのかどうかでしょうか。


セルの書式設定により表示方法を変えていたとしたら、目に見えるのは実際のセルの値ではありません。
たまにありがちなミスですけどね。

その時は .Value ではなく .Text としてみるとか?
    • good
    • 0
この回答へのお礼

デバックしている最中に、なぜかうまくいきました。チェックボックスのCaptionを入力し直してたら動いたのでミスがあったみたいです。お騒がせしました。ありがとうございました!^_^

お礼日時:2019/07/25 17:45

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