プロが教える店舗&オフィスのセキュリティ対策術

エクセルマクロ初心者です。

チェックボックスの機能を使い、
True,FALSEが自動でできるように、いろいろなサイトを見て以下のマクロを組みました。

Dim cb As CheckBox
For Each cb In ActiveSheet.CheckBoxes
cb.LinkedCell = cb.TopLeftCell.Offset(0,10).Address
Next cb

これ自体は、実行できたのですが、理想は以下の通りです。
・この機能を一部のチェックボックスにだけ反映できるように範囲を指定したい
・Offsetではなく、別シートにTrueなどを出すようにしたい

本など読んで、Activesheetの後ろにRangeで範囲を入れてもデバッグが起こり、よく分かりません。

どうか解決していただきたいです。
よろしくお願いします。

A 回答 (1件)

こんにちは



ご質問が抽象的なので、例示での回答しかできませんけれど・・・

>・この機能を一部のチェックボックスにだけ反映できるように範囲を指定したい
チェックボックスの位置は、ご提示のようにTopLeftCellで判断できますので、TopLeftCellが範囲内にあるかどうかで処理を行うか否かを判断すれば良いでしょう。
仮に、指定範囲が変数Rngにあるとするなら
 If Not Intersect(Rng, cb.TopLeftCell) Is Nothing Then ~
のようにすれば判断できるでしょう。

>・Offsetではなく、別シートにTrueなどを出すようにしたい
LinkedCellに文字列で、連動させたいアドレスをシート名を付して指定すれば良いです。
例えば、"Sheet2!$A$1" のような感じです。
    • good
    • 0

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