前提・実現したいこと
初めて投稿します。
エクセル シート1にフォームコントロールチェックボックスをセットし、それをチェックを入れるとシート2のC5セルに入力した文字を
囲むように図形で白抜きの〇を入れるコードを作製したいのですが、上手くいきません。
どのようにしたら、表示できるようになりますか?
発生している問題・エラーメッセージ
シート1のチェックボックスにチェックを入れるとエラーが表示され、シート2のC5セルに白抜きされていない黒丸●が表示さ
れた状態で止まってしまいます。
エラーメッセージ:オブジェクトは、このプロパティまたはメソッドをサポートしていません。
該当のソースコード
VBA
Private Sub チェック1_Click() '"Sheet2"のC5セルに○を記入 Worksheets("sheet1").Shapes.AddShape(msoShapeOval, Range("C5").Left, Range("C5").Top, _ Range("C5 ").Height, Range("C5").Height).Select Selection.ShapeRange.Fill.Visible = msoFalse With Selection.ShapeRange.Line .Visible = msoTrue .ForeColor.RGB = RGB(0, 0, 0) End With End sub
試したこと
”Sheet2"を"Sheet1"に変更しチェックボックスをチェックすると、sheet1のC5に白抜きの〇が正常に表示されます。
またsheet2を表示した状態でF8で一行ずつ実行するとsheet2のC5に白抜きの〇が正常に表示されます。
sheet1を表示した状態でsheet2に〇を入れたいのですが、上手くいきません。
補足情報(FW/ツールのバージョンなど)
Selection.ShapeRange.Fill.Visible = msoFalseに問題があると思うのですが、VBA初心者なのでうまく変更が出来ません。
ここにより詳細な情報を記載してください。
コードのWorksheets("sheet1")...ってところは、Worksheets("sheet2")...の誤りじゃないでしょうか?(sheet1が開いているのなら、エラーにならず、sheet1上に○が出来るはず)
回答1件
あなたの回答
tips
プレビュー