• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelでのチェックボックスの右端への設置)

Excelでのチェックボックスの右端への設置

このQ&Aのポイント
  • VBAを使用してExcelで複数のチェックボックスを設置する方法について教えてください。
  • ループ処理で太字のセルの右端にチェックボックスを設置したい場合、現在はセルの左端に設置されてしまいます。
  • 設置後にAlt+D&Dをしてもセルの右端にスナップしてくれないようです。

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

  • ベストアンサー
noname#203218
noname#203218
回答No.1

下記方法でも良いでしょうか。 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の値を変化させるとセルの縦位置変更が可能です。 チェックボックスは添付図のようになります。

BlackYoshi
質問者

お礼

ご回答ありがとうございます。 フォームの方のチェックボックスのプロパティでは、 試してみた限りでは小数点以下の値は繁栄さてない(?)ようなので、 整数値の範囲で調整しましたが、納得できるように設置できました。

その他の回答 (1)

回答No.2

こんにちは。 #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 '//

BlackYoshi
質問者

お礼

ご回答ありがとうございます。 おっしゃる通り自分が設置したいのはフォームの方のチェックボックスでした。 何度か調整して、無事設置できました。 ドラッグ中のAltキーでセルの右端にもスナップしてくれれば便利なのですがね。 .OnAction については全く知らなかったので勉強になりました。 その点についてもお礼申し上げます。

関連するQ&A