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

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

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

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

Q&A

解決済

3回答

6356閲覧

VBAで、指定した範囲のセルにチェックボックスを埋め込みたい

halmichi

総合スコア12

VBA

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

0グッド

0クリップ

投稿2020/08/18 07:20

前提・実現したいこと

Microsoft360のエクセルを使っています。
VBAで指定した範囲のセルにチェックボックスを埋め込みたいのですが、セルとは関係なく生成されるので困っています。
GASで作ったスクリプトを移植しているのですが、GASのようにセルに埋め込むように扱えないでしょうか?

試したこと

マクロの記録をオンにしたまま、生成した後セルに埋め込んでみましたが、座標を指定して移動させるように記録されていて一般化できませんでした。

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

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

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

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

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

guest

回答3

0

「リンクするセル」を使ってみてはいかがでしょうか。
エクセルのチェックボックスの挿入

【エクセル】チェックボックスのリンクするセルを自動で指定【excel】

チェックボックスの位置についてはこちらも
【VBA】チェックボックスの作成と活用例

意図するものと違ったら申し訳ないです。

投稿2020/08/18 07:45

radames1000

総合スコア1925

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

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

halmichi

2020/08/20 06:35

ありがとうございます。 参考になりました。
guest

0

ベストアンサー

VBA - 選択したセルの文字列を変更しようとすると文字の大きさが変わってしまう、複数選択でも動くようにしたい|teratail
の質問の関連ですね。

セルに埋め込むことはできませんが、セルの上に配置すれば、セルのサイズを変更したりしても一緒に移動するので同じことだと思います。

前の質問の画像のように配する場合、VBAでセル上に配置する方法はすでに他の方の回答でリンクが紹介されていますので、手作業で配置する方法を紹介しておきます。

リンク先では、□   □リハ の2つのチェックボックスかグループ化されていますので、まず、
配置したいセル範囲の左上のセルとその右のセルに2つのActiveXコントロールのチェックボックスを配置します。(例えば、A1セルとB1セル)右のチェックボックスはプロパティの Enable を False に設定しておきます。
2つのセルに配置出来たら、その2つのセルを選択します。選択範囲の右下隅(フィルハンドル)を下にドラッグします。するとドラッグしただけチェックボックスが複製されます。
次に、生成されたチェックボックス全体のセル範囲を選択してフィルバンドルを右にドラッグします。
横方向にも複製されます。このようにすれば希望のセル範囲に簡単にチェックボックスを配置出ます。

あとは、VBAで各チェックボックスのクリックイベントを設定することになります。

vba

1Private Sub CheckBox1_Click() 2 CheckBox2.Enabled = CheckBox1.Value 3End Sub

CheckBox1をクリックするとチェックの有無でとなりのチェックボックス(CheckBox2)の使用可能か不可が切り替わります。

このイベントプロシージャをチェックボックスの数だけ記述することになりますが、これが無駄だと思ったら、クラスモジュールを使って共通化することも可能です。

複数のコントロールのイベントを一つのプロシージャにまとめる(ExcelVBA) - パソコンカレッジ スタッフのひとりごと

投稿2020/08/18 08:58

hatena19

総合スコア34075

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

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

halmichi

2020/08/20 06:36

ありがとうございます。 もう少しで実装できそうです。 前の質問でもお世話になったのでベストアンサーにさせていただきます。
guest

0

やめておいた方がよいと思います。

疑似的にやるのであれば、ワークシートチェンジイベントで操作セルを取得し
□を■に塗りつぶすなどの処理とかでしょうか・・・。

投稿2020/08/18 07:27

mako1972

総合スコア383

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

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

halmichi

2020/08/20 06:34

ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問