- ベストアンサー
Excelでのチェックボックスの右端への設置
- VBAを使用してExcelで複数のチェックボックスを設置する方法について教えてください。
- ループ処理で太字のセルの右端にチェックボックスを設置したい場合、現在はセルの左端に設置されてしまいます。
- 設置後にAlt+D&Dをしてもセルの右端にスナップしてくれないようです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
下記方法でも良いでしょうか。 With r ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _ DisplayAsIcon:=False, Left:=.Left + .Width - 10, _ Top:=.Top + .Height / 2 - 4.6, Width:=10, Height:=12).Select End With Left:=.Left + .Width - 10の10の値を変化させるとセルの横位置変更が可能です。 Top:=.Top + .Height / 2 - 4.6の4.6の値を変化させるとセルの縦位置変更が可能です。 チェックボックスは添付図のようになります。
その他の回答 (1)
- WindFaller
- ベストアンサー率57% (465/803)
こんにちは。 #1さんのでもよいのですが、ご質問者さんは、フォーム側のオブジェクトをお使いのようなので、 それに合わせれば、このようになるかと思います。確かに、数多くのチェックボックスを設置する場合は、フォームの方が何かと便利な部分はあります。それは、それ自体に、イベントを設ける時です。 以下の場合は、 .Text ="" と一つだけですが、 .OnAction ="マクロ名" を入れれば、一度に同じ設定が出来ます。 >.Left の部分を.Left+50 などとしておおよその値で右にずらすしかないのでしょうか。 基本的には、その通りです。チェックボックスの大きさは正確には分からないような気がしますので、結局のところは試してみるしかありません。右の位置そのものは、セルの.Left + .Widthで分かりますから、そこから引き算します。 '// Sub TestAddCheckBoxes() Dim r As Range For Each r In Range("B1", Cells(Rows.Count, 2).End(xlUp)) With r If r.Font.Bold Then With ActiveSheet.CheckBoxes.Add(.Left + .Width - 15, .Top, .Width, .Height) .Text = "" End With End If End With Next r End Sub '//
お礼
ご回答ありがとうございます。 おっしゃる通り自分が設置したいのはフォームの方のチェックボックスでした。 何度か調整して、無事設置できました。 ドラッグ中のAltキーでセルの右端にもスナップしてくれれば便利なのですがね。 .OnAction については全く知らなかったので勉強になりました。 その点についてもお礼申し上げます。
お礼
ご回答ありがとうございます。 フォームの方のチェックボックスのプロパティでは、 試してみた限りでは小数点以下の値は繁栄さてない(?)ようなので、 整数値の範囲で調整しましたが、納得できるように設置できました。