- ベストアンサー
EXCELで自動的にチェックボックスの追加
って可能でしょうか。 イメージとしてはA列にデータが入力されたら、B列にチェックボックスを自動的に追加し、選択できるようにし、あとはVBAが対象レコードを処理するみたいな感じです。 お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 >あとはVBAが対象レコードを処理するみたいな感じです。 うーん、伝わってこないです。「対象レコードを処理するみたいな感じ」というのは、どういう意味でしょうか?ごめんなさい。私は、こういう表現が良く分からないのです。マクロの呼び出しでしょうか? 以下のようにすれば、入力すれば、チェックボックスが追加できます。 一応、簡単な、フォーム側にしてありますが、コントロールツール側(OLEObject ->基本的にはマクロのみの処理になる)ものも出来ます。位置は、一応、B列の同じ行の真ん中のつもりなのですが、チェックボックスの幅が、真ん中よりわずか右よりにさせます。 Int(Target.Width / 2) の部分で調整してください。例:その括弧「)」の後に、-2 などを入れる。「+(プラス)」が右、「-(マイナス)」が左 コントロールツール側は、調整は必要ないような気がしますが、キャプションを削除しても、イベント領域が、白でくり抜かれます。Excel2003では、ワークシート上では、フォーム側のほうが、出来上がりはきれいです。(たぶん、印刷すれば、変わらないはずです)。ただし、フォームのツールは旧バージョンのものですから、将来性が保証できません。 '------------------------------------------------------------ 'シートモジュール Private Sub Worksheet_Change(ByVal Target As Range) Dim obj As Object If Target.Column <> 1 Then Exit Sub 'A列指定 If IsEmpty(Target.Value) Then Exit Sub '値入力指定 If Target.Count > 1 Then Exit Sub '複数セル除外 For Each obj In Me.CheckBoxes '既にB列にある場合は除外 If Not Intersect(obj.TopLeftCell, Target) Is Nothing Then Exit Sub Next obj With Me.CheckBoxes.Add(Target.Offset(, 1).Left + Int(Target.Width / 2), Target.Top, Target.Width, Target.Height) .Caption = "" .Visible = True '通常なくても良いが、繰り返しに必要 End With End Sub
その他の回答 (1)
- marbin
- ベストアンサー率27% (636/2290)
フォームのチェックボックスをシートに配置する 作業をマクロの自動記録したらコードが取れま した。 あとは配置場所をセルのTop、Leftで調整するコード を付加するだけです。 マクロの記録中にリンクするセルを設定するのも忘 れずに。 コードが出来たら、 シートモジュールのチェンジイベント用に改造しま しょう。 TargetのColumnが1だったら、というので条件分岐 すればいいように思います。