こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel VBA チェックボックスの規定値?について

Excel2003を使用しています。

チェックボックスを挿入すると、チェックがついていない状態で挿入されますが、これを、チェックがついている状態で挿入することはできますでしょうか?

あるマクロを実行すると、チェックボックスが挿入され、その挿入されたチェックボックスにチェックがついている状態にしたいのですが…。
チェックがついている状態で挿入することが不可能であれば、一旦、チェックがついていない状態で挿入後にチェックをつけるところまでマクロで処理したいのですが、どのようにしたらいいでしょうか?

よろしくお願いします。

投稿日時 - 2009-03-17 14:13:51

QNo.4804181

困ってます

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

アクティブセルにコントロールツールボックスのチェックボックス
を配置しチェックを入れます。

Dim r As Range
Dim mtp As Single
Dim mlt As Single
Dim mwd As Single
Dim mht As Single
Dim ck As Object

Set r = ActiveCell
mtp = r.Top
mlt = r.Left
mwd = r.Offset(, 1).Left - r.Left
mht = r.Offset(1).Top - r.Top
Set ck = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=r.Offset(, -1), _
DisplayAsIcon:=False, Left:=mlt, Top:=mtp, Width:=mwd, Height:=mht)
ActiveSheet.OLEObjects(ck.Name).Object.Value = True

投稿日時 - 2009-03-17 15:06:37

お礼

早々に、再度の回答ありがとうございます。

記載していただいたコードを参考にさせていただきながら、コードを追加してみたところ、希望通りのことができました。

ありがとうございました。

投稿日時 - 2009-03-17 15:25:21

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

No1です。
てっきりフォームのだと思ってました。
コントロールツールボックスのはあまり使ったことがないのですが、こんな感じでしょうか。

Sub test02()
With ActiveSheet
Set cb = .OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=500, Top:=50, Width:=100, Height:=20)
.OLEObjects(cb.Name).Object.Value = True
End With
End Sub

投稿日時 - 2009-03-17 15:16:10

お礼

早々に、再度の回答ありがとうございます。

> コントロールツールボックスのはあまり使ったことがないのですが、こんな感じでしょうか。

私もコントロールツールボックス上にあるチェックボックスは、あまり使用したことがないのですが、今回は画面上の見た目のこともあり、こちらを使用することに…。

再度の質問にもお答えいただいて、助かりました。
ありがとうございました。

投稿日時 - 2009-03-17 15:34:07

ANo.2

挿入したチェックボックスにはイベントを割り付けるのでしょうか?
イベント割付まで自動で行いたいならクラスモジュールを使うことになると思います。

投稿日時 - 2009-03-17 14:24:38

お礼

回答ありがとうございます。

まず、質問文に書き忘れていましたが、今回使用しているチェックボックスはコントロールツールボックス上にあるチェックボックスです。

> 挿入したチェックボックスにはイベントを割り付けるのでしょうか?

イベントは割り付けません。
あるマクロを実行すると、チェックボックスを挿入し、挿入したチェックボックスにチェックをつけるところまで処理したいと思っています。

投稿日時 - 2009-03-17 14:50:17

ANo.1

一例です。(フォームのCheckBoxです)

Sub test01()
Set cb = ActiveSheet.CheckBoxes.Add(100, 50, 80, 20)
cb.Value = xlOn
End Sub

投稿日時 - 2009-03-17 14:24:00

お礼

早速の回答ありがとうございます。

質問文に書き忘れていましたが、チェックボックスはコントロールツールボックス上にあるチェックボックスを使用しています。

記載していただいたコードを真似て書いてみましたが、エラーが出てしまいました(^^ゞ
コントロールツールボックス上のチェックボックスについても、同様に設定できるのでしょうか?
重ねての質問で申し訳ありませんが、お時間があれば、教えていただけると助かります。

投稿日時 - 2009-03-17 14:46:02

あなたにオススメの質問