- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel マクロでチェックボックスに枠線)
Excelマクロでチェックボックスに枠線を付ける方法
このQ&Aのポイント
- Excelマクロを使用して、チェックボックスに枠線を付ける方法について教えてください。
- 300個以上のチェックボックスを配置したシートに対して、1つのマクロでチェックボックスのオブジェクト名を取得しながら枠線を付けることはできるのでしょうか。
- 上記のマクロを試してみたところ、特定のチェックボックスを指定した場合は問題なく動作するが、Application.Callerの部分でエラーになってしまいます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 ついでですが、クリック時にいちいちCheckboxをSelectしなければ、 i = ActiveCell.Address(False, False, xlA1) Range(i).Select は不要ですね。またCheckBoxを再度クリックしてオフにした場合は枠線を赤から戻したいのではないですか? サンプルです。↓ Sub checkon02() With ActiveSheet.Shapes(Application.Caller) .Line.Weight = IIf(.DrawingObject.Value = xlOn, 3#, 1#) .Line.DashStyle = msoLineSolid .Line.Style = msoLineSingle .Line.Transparency = 0# .Line.Visible = msoTrue .Line.ForeColor.SchemeColor = IIf(.DrawingObject.Value = xlOn, 10, 0) End With End Sub
その他の回答 (1)
- merlionXX
- ベストアンサー率48% (1930/4007)
回答No.1
Sub checkon()をどうやって作動させましたか? Application.Callerをつかうからにはチェックボックスにマクロをセットしなければいけません。
お礼
merlionXXさん お早い回答ありがとうございます。 マクロを使用する前に、VBEのデバックでエラーが出ていたので駄目だと思っていましたが、実際にマクロを登録してみたらサンプルで頂いたコードも質問時のコードも動作しました。 枠線を赤から戻すのは、別のマクロにて一括で戻すつもりでしたので気にしていませんでした。 (使用目的が、たくさん並んだチェックボックスからその時チェックしたものを簡単に識別する為だったので。) 解除に使うつもりだったコード ActiveSheet.CheckBoxes.ShapeRange.Line.Visible = msoFalse 教えて頂いたサンプルコードだとチェックをオフにしたとき黒の細い枠線が残ってしまったので .Line.Weight = IIf(.DrawingObject.Value = xlOn, 3#, 0#) .Line.ForeColor.SchemeColor = IIf(.DrawingObject.Value = xlOn, 10, 9) 2箇所変更して使用させて頂きます。 (これでも線が無くなった事にはなっていないようですが・・。) マクロ初心者なので、教えて頂けて本当に助かりました。 ありがとうございました。