Excel2003の質問です、宜しくお願いします。
一つのセルの中で 「□良い □悪い」という回答にチェックを入れて貰うような
フォームみたいなものを設定したいのですが、どのようにしたら良いのでしょうか。
Wordなら、ツールバーのフォームから設定できそうなのですが、Excelの一つのセル
の中に二つ以上のチェックボックスの設定の仕方が分かりません。
また、二個以上のチェックをつけるとセルの色が赤になるとか、何もつけない
(シートを開いた状態)と緑になるとかにしたいのですが、どのようにしたら良いのか、
さっぱり分かりません。
宜しくお願いします。
No.2ベストアンサー
- 回答日時:
表示→ツールバー→フォームにチェックを入れるとフォームツールバーが出てくると思いますので、チェエクボックスを選んで任意のセルに二つ作ったら如何ですか?
また、チェックボックスは他セルとリンクさせてチェックが入っているとTrue、入ってないとFalseとする事ができますので、リンクセルの状態を条件に条件付書式を設定すれば色付けもできるかと思います。
チェックボックスを右クリック→コントロールの書式設定→コントロールタブ
リンクさせるセルにお好きなセルを設定。
これを二つそれぞれ別セルにリンク。
チェックボックスを入れているセルに条件付書式で色付け(リンクセルが両方ともTrueとかどちらもFalseとか)
でも択一の設問ならオプションボタンの方がいいかと思います。
(白丸の中に選択すると黒丸が入るもの)
オプションボタンを使用する場合は、設問がいくつかある場合はグループボックスで設問ごとに囲んでください。
囲んだ中で一つだけが選択されるようになります。
こちらはリンクすると「1,2・・・」と数値で返ります。
No.10
- 回答日時:
「□良い □悪い」でここまでしないといけないのか?。
良悪でなくても、この(対関係)分類でチェックで2つ並べるのはおかしい。
ラジオボタンでないのか?。
前述べたように、 「□良い」 のOFFで 「□悪い」 のON、その逆だし、
両方押すことないし、押されないことはある。
これらを連動させるのか?。
それもおかしい。
No.9
- 回答日時:
マクロ自体の問題ではありませんが、コメントが前のままでした。
>.CheckBoxes("CB" & j).Value = xlOff Then '1個
↓
.CheckBoxes("CB" & j).Value = xlOff Then '0個
です。
もし、お使いのようなら、ここらは、また要相談ですね。VBAでも構わないならですが。
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
No.7
- 回答日時:
えと、フォームでのチェックボックスやオプションボタンですが、基本的にオブジェクトなので配置するセルの位置などには左右されません。
セルの境目に置こうが機能は変化しません。
見た目の問題でセルの中に置きたいのかと思いますので、そこはセルを大きくして二つ並べればいいと思いますが、その色を変えたいセルとチェックボックスの位置は直接は関連しません。(そのセルの中にチェエクボックスがないと駄目なわけではない。)
例えば、チェエクボックスをA5セルに配置していても、A1セルの色を変えたりする事ができます。
チェックボックス1のリンクセル→C1
チェックボックス2のリンクセル→C2
とした場合A1に条件付書式の数式で「=AND($C$1=TRUE,$C$2=TRUE)」→お好きな色
と設定すればA5にあるチェックボックスが二つともチェックが入ればA1が赤になります。
個人的には、扱いやすいフォームツールが好きなので力説してしまいました。
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 の点線の領域線が現れるかと思います。その領域線の左上端が、その色を変更するセルの中にないといけません。
端
↓
+………+ +………
| □ | | □
+………+ +………
No.5
- 回答日時:
良い、悪い、何もつけない、の3択か。
対義語なら1つチェック入れるか入れないか。
「良い」から「悪い」にしたいとき
「良いON」→「良いOFF」で、
さらに「悪いON」にしないと「悪い」にならないのはうっとおしい。
「良い」も「悪い」もONにできるが、その制御はどうする?。
事例だから「良い、悪い」にしただけ、ならいいが・・・。
No.4
- 回答日時:
If CheckBox1.Value = True And checkbox2.Value = True Then
のように 条件分岐をします
♯3氏が指摘されている フォームのチェックボックスは使ったことが無いのでよくわかりません
ほとんど ユーザーフォーム のほうのチェックボックスか シートのコントロールチェックボックスしか
使っていないので・・。
No.3
- 回答日時:
Excelのチェックボックスには、ANo.1の方が説明しているコントロールボックスのチェックボックスと、ANo.2の方が説明しているフォームのチェックボックスの2種類があります。
フォームの方が古い機能なので、どちらかといえばコントロールボックスの方が主流です。
しかし、今回のようにチェックボックスが乗っているセルの色を変えたいならフォームの方がお勧め。
コントロールボックスの方は、背景色を透明(プロパティでBackStyle=0)に設定してセルの色をそのまま見せようとしても、チェックボックスをクリックするとなぜか背景色が不透明になります(おそらくExcelのバグ)。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Excel(エクセル) たくさんあるフォームコントロールを効率よく確認するには 1 2022/12/24 12:27
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
- Excel(エクセル) 複数シートのデータ統合とレイアウトの維持についてです 2 2022/10/18 21:11
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) Excelについて▶あるセルに文字を入力すると、別のセルに色がつく(条件付き書式) 1 2022/03/27 16:43
- Visual Basic(VBA) エクセルのメモについて教えてください。 1 2022/06/23 11:32
- Excel(エクセル) コントロールにリンクするセルが選択されない 3 2022/06/12 14:37
- Excel(エクセル) エクセルのフッタやヘッダーについて 3 2023/02/04 09:45
このQ&Aを見た人はこんなQ&Aも見ています
-
それもChatGPT!?と驚いた使用方法を教えてください
仕事やプライベートでも利用が浸透してきたChatGPTですが、こんなときに使うの!!?とびっくりしたり、これは画期的な有効活用だ!とうなった事例があれば教えてください!
-
スマホに会話を聞かれているな!?と思ったことありますか?
スマートフォンで検索はしてないのに、友達と話していた製品の広告が直後に出てきたりすることってありませんか? こんな感じでスマホに会話を聞かれているかも!?と思ったエピソードってありますか?
-
「覚え間違い」を教えてください!
私はかなり長いこと「大団円」ということばを、たくさんの団員が祝ってくれるイメージで「大円団」だと間違えて覚えていました。
-
2024年のうちにやっておきたいこと、ここで宣言しませんか?
2024年も残すところ50日を切りましたね。 ことしはどんな1年でしたか? 2024年のうちにやっておきたいこと、 よかったらここで宣言していってください!
-
【大喜利】【投稿~12/6】 西暦2100年、小学生のなりたい職業ランキング
【お題】 ・西暦2100年の「小学生のなりたい職業ランキング」で1位になった職業は何か教えてください
-
2つ以上のチェックボックスを連動させるには?
Excel(エクセル)
-
SPREADで1つのセルに複数のチェックボックスを表示させたい
Visual Basic(VBA)
-
セルの中にもっとも簡単にチェックボックスを置く方法は?
Excel(エクセル)
-
-
4
複数のチェックボックスを同時にチェックする
その他(ビジネス・キャリア)
-
5
パワーポイントをエクセルファイルへ
PowerPoint(パワーポイント)
-
6
あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように
Excel(エクセル)
-
7
Excel 条件によって入力禁止にする
Excel(エクセル)
-
8
E列のセルに数値が入れば(空白でなければ)B列の同じ行のセルに色がつく
その他(Microsoft Office)
-
9
EXCELで2つの数値のうち大きい方を採択する数式
Excel(エクセル)
-
10
セルをクリック⇒そのセルに入力された文字を○で囲む
Excel(エクセル)
-
11
エクセルの対象セルの1つしか入力できないようにする方法。
Excel(エクセル)
-
12
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
-
13
エクセルのチェックボックスで3つあるうち1つチェック入れたら自動的に残りにチェック出来ないようにするには
Excel(エクセル)
-
14
外部モニターを接続するとデスクトップのアイコンの位置が変わる
モニター・ディスプレイ
-
15
リンク元の日付が空白の時リンク先セルも空白にしたい
Excel(エクセル)
-
16
セル入力文字が、「右のセルにはみ出す場合と」「はみ出さない場合」の違い
Excel(エクセル)
-
17
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
18
エクセルで空白セルを含む列の最終行の値を取得する式を教えてください
Excel(エクセル)
-
19
excelの不要な行の削除ができない!
Excel(エクセル)
-
20
自分の部署・担当を言うとき、どういう言い方が正しいでしょうか?? 会社のときは、弊社といいますが、部
その他(ビジネス・キャリア)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~12/6】 西暦2100年、小学生のなりたい職業ランキング
- ・ちょっと先の未来クイズ第5問
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
英数字のみ全角から半角に変換
-
Microsoft Officeを2台目のPCに...
-
Excel 日付を比較したら、同じ...
-
outlookのメールが固まってしま...
-
Outlook で宛先が複数の場合の人数
-
【Excel VBA】PDFを作成して,...
-
大学のレポート A4で1枚レポー...
-
エクセルでXLOOKUP関数...
-
Excelでアラーム機能を作りたい...
-
Microsoft Formsの「個人情報や...
-
会社PCのメールが更新されない
-
Excelで空白以外の値がある列の...
-
eXCEL同じブックの中の何枚もシ...
-
Office 2021 Professional Plus...
-
Windows 11で、IME言語バー(IM...
-
エクセル:一定間隔で平均値を...
-
ステータスバーの合計に表示さ...
-
別シートの年間行事表をカレン...
-
Officeを開くたびの「再起動メ...
-
Excel テーブル内の空白行の削除
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Microsoft Officeを2台目のPCに...
-
英数字のみ全角から半角に変換
-
outlookのメールが固まってしま...
-
【Excel VBA】PDFを作成して,...
-
エクセルでXLOOKUP関数...
-
会社PCのメールが更新されない
-
マクロ自動コピペ 貼り付ける場...
-
Excel 条件付き書式 複数行で異...
-
大学のレポート A4で1枚レポー...
-
Microsoft Formsの「個人情報や...
-
sheet2に並んだ日付の行にsheet...
-
スプレッドシートにて、特定の...
-
Microsoft入力サインインできま...
-
Outlook で宛先が複数の場合の人数
-
eXCEL同じブックの中の何枚もシ...
-
Excel テーブル内の空白行の削除
-
Office 2021 Professional Plus...
-
エクセル:一定間隔で平均値を...
-
teams設定教えて下さい。 ①ビデ...
-
Excel 日付を比較したら、同じ...
おすすめ情報