ここから本文です

エクセルのチェックボックスを連続で大量に作りたい

wat********さん

2007/11/2115:53:27

エクセルのチェックボックスを連続で大量に作りたい

エクセルのコントロールでチェックボックスを作り、コントロールの書式設定でリンク先を横のセルにします。
チェックボックスを作ったセルと、リンク先のセルを選択し、オートフィルで大量にチェックボックスを作ります。
ここまではOKなのですが、2個目以降のチェックボックスにチェックを入れると、すべてのチェックボックスにチェックが入り、一番上のリンク先だけがTULEがでたり、FALSEになったりします。
どのチェックボックスにチェックを入れても、真横のセルが変更するようにしたいのですが、一個一個リンクを張り替える方法だと大変なので、一気にチェックボックスを作る方法を教えていただけないでしょうか?

閲覧数:
82,589
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

hiy********さん

編集あり2007/11/2121:37:26

一気に大量となると、VBAとなると思います。EXCELの画面で、シート名のところ(通常Sheet1となっているところ)を右クリック、
コードの表示を選択します。
VBEの画面が開きますので、メニューより「挿入」→「標準モジュール」を選択します。
下記のコードを右下の広いところに貼り付けます。
'--------------ここから貼り付ける--------------------
Sub Check作成()
Dim myChk As Object
Dim i As Long
Dim Sakuseisuu As Long
Dim StartCell As Range

'現在のブックのアクティブシートに作るにはこの下のWorkbooks.Addを消して下さい。
Workbooks.Add
'--------↓ここを変更---------
Sakuseisuu = 20 'チェックボックスの作成数

Set StartCell = Range("B5") 'スタートする位置
'--------↑ここを変更---------

For i = 0 To Sakuseisuu - 1
With StartCell.Offset(i)
Set myChk = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
DisplayAsIcon:=False, _
Left:=.Left, Top:=.Top, _
Width:=.Width, Height:=.Height)
End With
With myChk
.LinkedCell = StartCell.Offset(i, 1).Address
.Object.Caption = "" '空白にするのは何でだったかなー?
.Object.Value = False
End With
Next
End Sub
'--------------ここまで貼り付ける--------------------
エクセルにもどり、メニューよりツール、マクロ、マクロ、と進み

Check作成

を実行すると、新しいブックが作成され、そこにチェックボックスが20ヶでき、右側のセルがリンクされます。

上記のコードで、現在のシートにチェックボックスを作る場合は、Workbooks.Addを削除して下さい。
作成数の変更は20 を30とかに、チェックボックスのスタート位置は、B5をC7とかに適宜変更して下さい。

現在すでに、シートにあるチェックボックスの右側にリンクするには下記でできます。
Sub Checkリンク変更()
Dim myChk As Variant
For Each myChk In ActiveSheet.OLEObjects
With myChk
If Left(.Name, 8) = "CheckBox" Then
.LinkedCell = .TopLeftCell.Offset(, 1).Address
.Object.Value = False
End If
End With
Next
End Sub

質問した人からのコメント

2007/11/22 07:32:26

降参 出来ました! 丁寧に説明くださってありがとうございました。 

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる