• ベストアンサー

一つのセルの中に二個のチェックボックスを作りたい

 Excel2003の質問です、宜しくお願いします。  一つのセルの中で 「□良い □悪い」という回答にチェックを入れて貰うような フォームみたいなものを設定したいのですが、どのようにしたら良いのでしょうか。  Wordなら、ツールバーのフォームから設定できそうなのですが、Excelの一つのセル の中に二つ以上のチェックボックスの設定の仕方が分かりません。  また、二個以上のチェックをつけるとセルの色が赤になるとか、何もつけない (シートを開いた状態)と緑になるとかにしたいのですが、どのようにしたら良いのか、 さっぱり分かりません。  宜しくお願いします。

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

  • ベストアンサー
  • chonami
  • ベストアンサー率43% (448/1036)
回答No.2

表示→ツールバー→フォームにチェックを入れるとフォームツールバーが出てくると思いますので、チェエクボックスを選んで任意のセルに二つ作ったら如何ですか? また、チェックボックスは他セルとリンクさせてチェックが入っているとTrue、入ってないとFalseとする事ができますので、リンクセルの状態を条件に条件付書式を設定すれば色付けもできるかと思います。 チェックボックスを右クリック→コントロールの書式設定→コントロールタブ リンクさせるセルにお好きなセルを設定。 これを二つそれぞれ別セルにリンク。 チェックボックスを入れているセルに条件付書式で色付け(リンクセルが両方ともTrueとかどちらもFalseとか) でも択一の設問ならオプションボタンの方がいいかと思います。 (白丸の中に選択すると黒丸が入るもの) オプションボタンを使用する場合は、設問がいくつかある場合はグループボックスで設問ごとに囲んでください。 囲んだ中で一つだけが選択されるようになります。 こちらはリンクすると「1,2・・・」と数値で返ります。

その他の回答 (9)

  • layy
  • ベストアンサー率23% (292/1222)
回答No.10

「□良い □悪い」でここまでしないといけないのか?。 良悪でなくても、この(対関係)分類でチェックで2つ並べるのはおかしい。 ラジオボタンでないのか?。 前述べたように、 「□良い」 のOFFで 「□悪い」 のON、その逆だし、 両方押すことないし、押されないことはある。 これらを連動させるのか?。 それもおかしい。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.9

マクロ自体の問題ではありませんが、コメントが前のままでした。 >.CheckBoxes("CB" & j).Value = xlOff Then '1個       ↓ .CheckBoxes("CB" & j).Value = xlOff Then '0個 です。 もし、お使いのようなら、ここらは、また要相談ですね。VBAでも構わないならですが。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.8

私の#6のマクロについて、ご指摘があったようですが、オブジェクトとセルの位置関係は連動し、設定にはある程度、正確さが必要だというだけです。今度は、新たにチェックボックスを取り付ける場合、設定まで自動的に行うマクロを披露します。セルに機械的に納まります。数が数百でも、1秒程度で出来ます。  *Range("B1:B30") 'チェックボックスの範囲  *Const EA '何行おきか?(n -1 )行置き '//標準モジュール Private Const EA As Integer = 2 '* Sub AddFormCheckBoxes()  'チェックボックスの設定マクロ  Dim rng As Range  Dim i As Long, j As Long  Dim aSh As Worksheet  If EA = 0 Then Exit Sub  Set aSh = ActiveSheet   Set rng = aSh.Range("B2:B30") '*   rng.EntireColumn.ColumnWidth = 16   With rng    j = 1    For i = 1 To .Rows.Count Step EA    With .Cells(i, 1)    '左側のチェックボックス    With aSh.CheckBoxes.Add(.Left + 5, .Top + 1, .Width / 3, .Height / 8)     .Name = "CB" & j     .Caption = "良い"     .OnAction = "CheckBoxes_Click"     j = j + 1    End With    '右側のチェックボックス    With aSh.CheckBoxes.Add(.Left + 50, .Top + 1, .Width / 3, .Height / 8)     .Name = "CB" & j     .Caption = "悪い"     .OnAction = "CheckBoxes_Click"     j = j + 1    End With    End With    Next i   End With  Set aSh = Nothing  Set rng = Nothing End Sub Private Sub CheckBoxes_Click()  'CheckBoxのマクロ  Dim n As String  Dim myCell As Range  Dim i As Long, j As Long, k As Long, m As Long  With ActiveSheet   m = .CheckBoxes(1).TopLeftCell.Row   n = Application.Caller   i = Replace(n, "CB", "", , , 1)   If i Mod 2 = 0 Then    j = i - 1    k = j   Else    j = i + 1    k = i   End If   Set myCell = .Cells(Int((k - 1) / 2) * EA + m, 2)   If .CheckBoxes("CB" & i).Value = xlOn And _    .CheckBoxes("CB" & j).Value = xlOn Then    myCell.Interior.ColorIndex = 38 '赤   ElseIf .CheckBoxes("CB" & i).Value = xlOff And _    .CheckBoxes("CB" & j).Value = xlOff Then '1個    myCell.Interior.ColorIndex = 35 '緑   Else    myCell.Interior.ColorIndex = xlNone '色なし   End If  End With  Set myCell = Nothing End Sub 'おまけ Sub ClearCheckBoxes() 'チェックボックスの削除 Dim cb As Object  Application.ScreenUpdating = False  For Each cb In ActiveSheet.CheckBoxes   cb.TopLeftCell.ClearFormats   cb.Delete  Next cb  Application.ScreenUpdating = True End Sub

  • chonami
  • ベストアンサー率43% (448/1036)
回答No.7

えと、フォームでのチェックボックスやオプションボタンですが、基本的にオブジェクトなので配置するセルの位置などには左右されません。 セルの境目に置こうが機能は変化しません。 見た目の問題でセルの中に置きたいのかと思いますので、そこはセルを大きくして二つ並べればいいと思いますが、その色を変えたいセルとチェックボックスの位置は直接は関連しません。(そのセルの中にチェエクボックスがないと駄目なわけではない。) 例えば、チェエクボックスをA5セルに配置していても、A1セルの色を変えたりする事ができます。 チェックボックス1のリンクセル→C1 チェックボックス2のリンクセル→C2 とした場合A1に条件付書式の数式で「=AND($C$1=TRUE,$C$2=TRUE)」→お好きな色 と設定すればA5にあるチェックボックスが二つともチェックが入ればA1が赤になります。 個人的には、扱いやすいフォームツールが好きなので力説してしまいました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

コントロールツールもフォームツールも同じですが、コントロールツール側のほうが、少し難しいと思います。確かに、名前を、CheckBox1 とか分かっていればよいのですが、基本的には、CheckBox の数だけマクロが必要になってしまいます。そういう点で、フォームツール側のCheckBox のほうが楽です。VBAでも、どうやって色を付けるか、その先まで考えていないと話が進められませんね。 標準モジュールに、二つを貼りつけて、SetInActonで、マクロを関連付けてください。 色については、気に入らなかったらヘルプなどを見ながら、調整してください。 2個以上と書かれていますが、現在は横並びの2個までです。 Private Sub CheckBoxes_Click()  Dim n As String  Dim chkb As Object  Dim cb As Object  Dim i As Integer  n = Application.Caller  i = 0 'カウントのクリア    Set chkb = ActiveSheet.CheckBoxes(n)  If chkb.Value = xlOn Then i = 1 '1個目  For Each cb In ActiveSheet.CheckBoxes   If chkb.Name <> cb.Name Then    If Not Intersect(cb.TopLeftCell, chkb.TopLeftCell) Is Nothing Then    If cb.Value = xlOn Then i = i + 1 '加算     Exit For    End If   End If  Next cb  If i > 1 Then '2個以上   chkb.TopLeftCell.Interior.ColorIndex = 3 '赤  ElseIf i = 1 Then '1個   chkb.TopLeftCell.Interior.ColorIndex = xlNone '色なし  Else   chkb.TopLeftCell.Interior.ColorIndex = 10 '緑  End If End Sub 'チェックボックスにマクロを関連付けさせる Sub SetInActon()  Dim cb As Object  For Each cb In ActiveSheet.CheckBoxes   cb.OnAction = "CheckBoxes_Click"  Next cb End Sub *フォームツールのCheckBox の取り付けの注意点 クリックしたりすると、CheckBox の点線の領域線が現れるかと思います。その領域線の左上端が、その色を変更するセルの中にないといけません。 端 ↓ +………+ +……… | □  | | □ +………+ +………

  • layy
  • ベストアンサー率23% (292/1222)
回答No.5

良い、悪い、何もつけない、の3択か。 対義語なら1つチェック入れるか入れないか。 「良い」から「悪い」にしたいとき 「良いON」→「良いOFF」で、 さらに「悪いON」にしないと「悪い」にならないのはうっとおしい。 「良い」も「悪い」もONにできるが、その制御はどうする?。 事例だから「良い、悪い」にしただけ、ならいいが・・・。

  • imo8001
  • ベストアンサー率14% (26/179)
回答No.4

If CheckBox1.Value = True And checkbox2.Value = True Then のように 条件分岐をします ♯3氏が指摘されている フォームのチェックボックスは使ったことが無いのでよくわかりません ほとんど ユーザーフォーム のほうのチェックボックスか シートのコントロールチェックボックスしか 使っていないので・・。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.3

Excelのチェックボックスには、ANo.1の方が説明しているコントロールボックスのチェックボックスと、ANo.2の方が説明しているフォームのチェックボックスの2種類があります。 フォームの方が古い機能なので、どちらかといえばコントロールボックスの方が主流です。 しかし、今回のようにチェックボックスが乗っているセルの色を変えたいならフォームの方がお勧め。 コントロールボックスの方は、背景色を透明(プロパティでBackStyle=0)に設定してセルの色をそのまま見せようとしても、チェックボックスをクリックするとなぜか背景色が不透明になります(おそらくExcelのバグ)。

  • imo8001
  • ベストアンサー率14% (26/179)
回答No.1

コントロールツールボックスのチェックボックスは セルに影響されない配置ができるで これを使えばいいのでは? チェックボックスの値がTRUEかFALSEかでの条件判断はVBAでないと無理かと思います

htgotk_001
質問者

お礼

 imo8001さん、回答有難う御座います。    一つのセルの中に2個のチェックボックスを配置して、そのチェックボックスがチェックされた こと(1個とか2個とか)はどのようにして、VBAで拾ってやれる(判断できる)のでしょうか。

関連するQ&A

  • エクセルのフォームのチェックボックスについて

    エクセルのフォームのチェックボックスについて あるセルにフォームのチェックボックスを付け、 そのセルに、true・falseの条件設定をしました。 その設定を利用して、条件式書式の設定で、 trueの時にとなりのセルを赤にするようにしました。 以上のような行が1500行あります。 1つ1つ設定するのが困難のため、 マクロが使えるフォームのチェックボックスを使用しようと試みております。 しかし、マクロ内のVBAの記述方法が解りません。(1行だけなら解ります) ご存知の方がおられましたら教えてください。 よろしくお願いいたします。

  • チェックボックス・オンを数えたい

    エクセルで作成した表の中の列に 表示→ツールバー→フォームで チェックボックスを作りました。 その列の一番下に、 チェックボックス・オンのセルの数×¥3000を表示させたいのですが、 出来ますでしょうか?

  • チェックボックスの作り方

    エクセルで、申込書を作成しています。 一つのセルの中に、例えば、 ------------------- □青 □赤 □黄色 □緑 □黒 ------------------- のような感じで、チェックボックスを作り、 一つだけ選択可能にしたいのですが、 ヘルプを読んでもさっぱり作り方がわかりません。 どなたか、懇切丁寧に教えてくださいませんでしょうか? よろしくお願いいたします。

  • セルの中にもっとも簡単にチェックボックスを置く方法は?

    Excel2000を使用しています。 タイトル通りの質問です。いくつものセルにチェックボックスを起きたいと考えています。フォームを使うと大きさが違ったり、なんか違う感じがします。ほかに便利な方法はないですか? 意図することがわかりづらかったら補足致します。

  • エクセルユーザーフォームのチェックボックスのCaptionにセルの値を入れたい。

    表題の通りで、エクセルユーザーフォームにチェックボックスを作成し、そのCaptionにセルの値を入れたい場合、どのようにすればいいのでしょうか。 つまり、シートのセルの値が変われば、ユーザーフォームのチェックボックスの文字が変わっているようにしたいのです。 エクセル2003です。 よろしくお願い致します。

  • エクセルのチェックボックスについて

    エクセルのチェックボックスについて教えて下さい。 シート名が「東京」「名古屋」「大阪」とあります。 各シートのフォームは同じで、チェックボックスが同じセルで各々10個あります。 ここで、「東京」シートの一つのチェックボックスにチェックを入れると、「名古屋」「大阪」の一つのチェックボックスにチェックマークを 入るようにしたいのですが、可能でしょうか? 「名古屋」「大阪」シートに入る位置は「東京」と同じです。

  • エクセルのチェックボックスについて教えてください

    エクセルのチェックボックスについて質問します。 ネットで調べたところ、下記の様にありました。 (1)[フォーム]ツールバーを表示しておきます。[チェックボックス]ボタンをONにして、ワークシート上でクリックすると、チェックボックスが表示されます。 (2)チェックボックス上で右クリックし、[コントロールの書式設定]をクリックします。 (3)[コントロールの書式設定]のダイアログボックスで、[コントロール]のタブをクリックし、[値]で規定値を設定します。・・・ とありましたが、私の使用しているパソコンでは、コントロールの大やログボックスで[コントロール]タブが見当たりません。 何か特別な設定でもいるのでしょうか? 使用しているエクセルは2003です。 分かる方がいらっしゃいましたら教えてください。よろしくお願いします。

  • Excelチェックボックスのリンクするセル一括

    Excelでチェックボックスのリンクするセルを一括設定したいです。 sheet1に複数のチェックボックスを作成し、それぞれのリンクするセルをsheet2に入れたいのですが、チェックボックスが数10個あるので、1つづつやっていると手間がかかります。 例 sheet1のB2のリンクするセルをsheet2のB2 sheet1のB3のリンクするセルをsheet2のB3 sheet1のB4はsheet2のB4 … 一括でやる方法(多分VBA)はわかりますか。

  • チェックボックスの作成方法について

    ワード文書の中にチェックボックスを作るにはどのようにしたらいいのでしょうか。  「表示」メニューの「ツールバー」「フォーム」で作るのでしょうか。これで作ると□の中に×が入るようになりますが、チェックボックスのアイコンにあるように×ではなく、「レ」が入るようにするにはどのようにするのか。また、その都度、チェックの記号を変更できる方法があるのでしょうか。Word初心者ですのでどなたかよろしくお願いします。

  • エクセル チェックボックスのチェックの判定の書き方

    エクセル内にチェックボックス(CheckBox1)を追加したのですが、セルの式にそのチェックが入っているかどうかをifを使って書きたいのですが、どのように書いたらよいのでしょうか。(コントロールツールボックスの書き方)ちなみに式を書くセルのシートとチェックボックスがあるシート(シート名:設定)は別になります。 現在チェックボックスのプログラムにセル内容を変えるように書いているのですが、保護するとだめなのでお願いします。

専門家に質問してみよう