• ベストアンサー

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

Wendy02の回答

  • 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

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