シート名「昇降機【青紙】(裏面)」に
下記のコードを設定しております。
このコードは
各セル("A6, A12, A13")のごれか一つに「■」と表示された場合
他の2つのセルには何も表示されません。
各セル("A6, A12, A13")をプルダウンで選択し「■」を表示されると
このコードは上手く行くのですが、
例えば
セルA6に「=昇降機【青紙】チェックリスト!I27」の式で「■」を表示
同じく
セルA12に「=昇降機【青紙】チェックリスト!S27」の式で「■」を表示
セルA13に「=昇降機【青紙】チェックリスト!O27」の式で「■」を表示
されるように設定すると
コードが上手く行かず、
「=昇降機【青紙】チェックリスト!I27」
「=昇降機【青紙】チェックリスト!S27」
「=昇降機【青紙】チェックリスト!O27」
の「■」が全てのセルに表示されてしまします。
解決方法を教えてください。
現状のコード
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("A6, A12, A13")
If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
If Target.Value = "■" Then
Select Case Target.Address
Case "$A$6"
Range("A8").ClearContents
Range("A12").ClearContents
Range("A13").ClearContents
Range("A16").ClearContents
Range("A17").ClearContents
Case "$A$12"
Range("A6").ClearContents
Range("A8").ClearContents
Range("A13").ClearContents
Range("A16").ClearContents
Range("A17").ClearContents
Case "$A$13"
Range("A6").ClearContents
Range("A8").ClearContents
Range("A12").ClearContents
Range("A16").ClearContents
Range("A17").ClearContents
End Select
End If
End If
End Sub
以上です。
宜しくお願い致します。

No.1ベストアンサー
- 回答日時:
こんにちは
>解決方法を教えてください。
シートのChangeイベントで拾っているため、ご質問のような計算(セル参照)による値の変化は、Changeとは見做されないので実行されないのが原因です。
変化の元となっているセル(=チェックリスト!I27など)のChangeイベントを拾うようにすれば、同様の方法で計算可能になります。
もしも、プルダウン等の直接入力と混在する場合には、両方のシートのChangeイベントを監視する必要があるので、シートのイベントではなく、ThisWorkbookのイベントとして処理する方が、まとめて処理できるので扱いやすいでしょう。
計算の発生をとらえれば良いのであれば、当該シートのCalculateイベントを拾っても(参照等の)計算を感知することは可能です。
しかしながら、Taget変数のようにどのセルが変化したかを示す引数はないので、対象のセルが変わったのかどうかを直接知るすべはありません。
(どこかに控えを取っておくなどの工夫が必要になります)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 3 2024/03/22 08:43
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/06/10 11:06
- Visual Basic(VBA) 【再投稿】VBAのシフト表でバグが出て困っています 3 2022/09/24 08:29
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/02/02 09:25
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2024/03/18 17:57
- Visual Basic(VBA) ExcelのVBAでシフト表を作っていますが、バグが出て困っています 2 2022/09/13 11:33
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 3 2022/06/10 09:24
- Excel(エクセル) VBA Private Sub Worksheet_Changeで 1 2024/05/01 16:59
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでCOPYを繰り返すと、処理が...
-
【マクロ】並び替えの範囲が、...
-
【マクロ】オートフィルター を...
-
Vba Array関数について教えてく...
-
Vba 型が一致しません(エラー1...
-
【ExcelVBA】値を変更しながら...
-
vbsでのwebフォームへの入力制限?
-
エクセルのマクロについて教え...
-
【ExcelVBA】5万行以上のデー...
-
VBAでセルの書式を変えずに文字...
-
【マクロ】開いているブックの...
-
Vba セルの4辺について罫線が有...
-
vb.net(vs2022)のtextboxのデザ...
-
Excel VBA 選択範囲の罫線色の...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
エクセルの改行について
-
VBAで特定の文字が入った行をコ...
-
WindowsのOutlook を VBA から...
-
Excel 範囲指定スクショについ...
-
【マクロ】シートの変数へ入れ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba セルの4辺について罫線が有...
-
vbsでのwebフォームへの入力制限?
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
【マクロ】並び替えの範囲が、...
-
エクセルの改行について
-
エクセルのマクロについて教え...
-
vb.net(vs2022)のtextboxのデザ...
-
VBAでCOPYを繰り返すと、処理が...
-
VBA ユーザーフォーム ボタンク...
-
エクセルのVBAコードと数式につ...
-
エクセルのVBAコードについて教...
-
[VB.net] ボタン(Flat)のEnable...
-
【マクロ】変数を使った、文字...
-
改行文字「vbCrLf」とは
-
質問58753 このコードでうまく...
-
【マクロ】シートの変数へ入れ...
-
ワードの図形にマクロを登録で...
-
算術演算子「¥」の意味について
おすすめ情報

