• ベストアンサー

コンボボックスのコントロール

コンボボックスの書式設定について教えていただけますか? コンボボックスのコントロールの《リンクするセル》を簡単に変更する方法はありますか? コンボボックスを30コ作りたいのですが、コンボボックスをコピーすると 《リンクするセル》も同じものがコピーされてしまいます。 関数のように順番にセル番号が変化しません。 これをひとつづつ手入力をするのが大変なので こーすると早いよ! などの方法があったら教えていただけませんか? よろしくお願い致します。

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

  • ベストアンサー
  • inoyan43
  • ベストアンサー率100% (1/1)
回答No.1

ご覧になられましたか? 下記・・・他の引用です。 一気に大量となると、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

pink_black
質問者

お礼

回答、ありがとうございます。 VBAになるんですね。 ちょこちょこっと簡単な操作方法がないのかな? と思ったんですが、そんなワケにはいかないですね。 細かく回答いただきましたので、無事解決です。 ありがとうございました。

関連するQ&A