• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数のセルのなかに該当があればオートシェイプを表示)

Excel VBAでオートシェイプを表示させる方法について

このQ&Aのポイント
  • Excelでチェック表を作成し、入力内容を反映するとオートシェイプが表示されるようにしたい。現在、◎は表示されるが、○が表示されない問題が発生している。VBAのコードを修正する必要がある。
  • VBAコードの「○で囲むVBA」部分を修正すると、一部のセルに入力された1と2以外の値に対しても○が表示されるようになる。
  • 全コードを入力しても、○が表示されない問題が発生する。原因を調査し対応策を見つける必要がある。

質問者が選んだベストアンサー

  • ベストアンサー
  • sora1515
  • ベストアンサー率58% (54/92)
回答No.1

ステップ実行のやり方を覚える事をお勧めします。  (やり方は動かしたいマクロにカーソル(|)を持っていきF8です。矢印も移動できますよ。) (ステップ実行中に変数(例えばループc)の値が見たければcを右クリックしウォッチ式の追加で値が見れます) 原因はForループ中(U103~X103)に○を付けても、最後にループした際(Y103時)に○を消しているからです。 ループせず範囲で検索してはいかがでしょう。 If WorksheetFunction.CountIf(Range("U103:Y103"), "1") Then ActiveSheet.Shapes("1を囲む○").Visible = True Else ActiveSheet.Shapes("1を囲む○").Visible = False End If If WorksheetFunction.CountIf(Range("U103:Y103"), "2") Then ActiveSheet.Shapes("2を囲む○").Visible = True Else ActiveSheet.Shapes("2を囲む○").Visible = False End If

masunona
質問者

お礼

ご回答ありがとうございます! いただいたコードでためしてみたところ理想の動きが出来ました! ステップ実行をはじめて知ったので早速やってみました。 今後も役立てていきます! ありがとうございました!

関連するQ&A