質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

781閲覧

シート1のチェックボックスONで、シート2のC5セルに図形の〇を入れたい。

JuN0611

総合スコア1

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2020/06/11 02:57

編集2020/06/11 02:59

前提・実現したいこと

初めて投稿します。
エクセル シート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初心者なのでうまく変更が出来ません。

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kenshirou

2020/06/11 03:24 編集

コードのWorksheets("sheet1")...ってところは、Worksheets("sheet2")...の誤りじゃないでしょうか?(sheet1が開いているのなら、エラーにならず、sheet1上に○が出来るはず)
guest

回答1

0

ベストアンサー

Selectionは、現在選択されている所なので、表示されていないシートの中をSelectionで使うことはできません。
通常は、AddShapeで追加するShapeを変数に格納し、このプロパティに対して値を設定するようにしますが、いかがでしょうか。

VBA

1Dim s As Shape 2Set s = Worksheets("sheet2").Shapes.AddShape(msoShapeOval, Range("C5").Left, Range("C5").Top, Range("C5").Height, Range("C5").Height) 3s.Fill.Visible = msoFalse 4With s.Line 5 .Visible = msoTrue 6 .ForeColor.RGB = RGB(0, 0, 0) 7End With

投稿2020/06/11 03:21

編集2020/06/11 03:22
kenshirou

総合スコア772

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

JuN0611

2020/06/14 04:44

ご回答ありがとうございます。 お陰様で指定したセルに◯を入れることができました。 この先も作り進み、また分からないことがありましたから、その際はよろしくお願いいたします。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問