![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_03.png?5a7ff87)
エクセルでアンケートのようなチェック項目がある物を作っているのですが、フォームのチェックボックスは「オン」「オフ」しかないので、次のようなことが出来なくて困っています。
例)
□ 今日の天気は晴れです。
□ 今日の天気は雨です。
□ 今は午前です。
□ 2月は英語でFebruaryです。
□ 1+1=2です。
・
・
・
以上のようにチェック項目があり、該当するところにチェックをつけ、チェックされた数を出します。
また、項目が必要のない時は、例えば二重線(エクセルでは取消線は一本ですが)で消して、消した項目以外の数をだす、というような物です。
この二重線で消すという操作を、チェックボックス上でクリックするだけで、「オン」→「オフ」→「どちらでもない(?)」というようなことは出来るのでしょうか。
チェックボックスのコントロールの書式設定のコントロールタブの中に、「淡色表示」というのがあるのですが、これを「オン」「オフ」と同じようにワンクリックのみで出来たらと思い、質問させていただきました。
分かりにくい質問で大変申し訳ありませんが、どうかお知恵をおかしください。
また、発送の転換で「こんな方法はどう?」などというのがありましたら、お願いいたします。
No.3ベストアンサー
- 回答日時:
チェックボックスの値は、
まずNullかどうかをIsNull関数でチェック
Nullでない場合は、Valueプロパティを参照
という手順で取得します。
また、チェック項目が多い場合、1つずつ書くのは大変なので、うまくForループを使用するように工夫します。
いろいろ方法はありますが、Tagプロパティを使用する方法を紹介します。
まず、該当するチェックボックスのTagプロパティに、全て同じ値を入力しておきます。(ここでは"AAA"とします。)
それ以外のフォーム上のコントロールのTagプロパティに、上記の値が入っていないようにしておきます。
とりあえず、フォーム上にコマンドボタン(CommandButton1)を置いて、そのクリックイベントに以下のように記述します。
Private Sub CommandButton1_Click()
Dim chk As Control 'コントロールオブジェクト
Dim TrueCount As Long 'チェックありの数
Dim FalseCount As Long 'チェックなしの数
'変数の初期化
TrueCount = 0
FalseCount = 0
For Each chk In Me.Controls
'Tagプロパティが一致するもののみ
If chk.Tag = "AAA" Then
'値がNullでない場合のみ
If Not IsNull(chk.Value) Then
If chk.Value Then
'チェックありの場合
TrueCount = TrueCount + 1
Else
'チェックなしの場合
FalseCount = FalseCount + 1
End If
End If
End If
Next chk
MsgBox "チェックあり:" & TrueCount & vbCrLf & "チェックなし:" & FalseCount
End Sub
メッセージボックスに数が表示されたでしょうか。
後は、フォームのテキストボックスなどに表示するなり、適宜変更して下さい。
No.2
- 回答日時:
無理してチェックボックスを使うことはないと思いますが・・・
チェックボックスをやめて、セルに「入力規則」を設定しては
如何でしょうか?
メニューから[データ]-->[入力規則]-->[設定]タブで
「入力値の種類」を「リスト」にして「元の値」に ○,×,△ などと
入れて選択するようにし方が良いかと思いますが如何でしょうか。
早速のご回答ありがとうございます。
ja7awuさんのおっしゃるとおり、別の入力方法をと思ったのですが、いま作製している物は、不特定多数の方が使用されますので、できるだけ簡単にと思っております。
確かに、○、×、△等でも入力規制を使用して簡単にできますが、様式が決まっていて、チェックボックス形式しかダメなのです(T_T)
せっかくご回答をいただいたのですが、別の機会の参考とさせていただきます。申し訳ありません。
No.1
- 回答日時:
こんにちは。
maruru01です。いまいちやりたいことがわかりませんが、こういうことでしょうか。
まず、チェックボックスのプロパティの[TribleState]を「True」にします。
そして、チェックボックスのChangeイベントなどに以下のように書きます。
If IsNull(CheckBox1.Value) Then
CheckBox1.Font.Strikethrough = True
Else
CheckBox1.Font.Strikethrough = False
End If
これで、チェックボックスをクリックするたびに、
取り消し線(グレー) → チェックあり → チェックなし
の順に変わると思います。
わかりづらい説明にもかかわらず、ご回答いただきありがとうございました。
先ほど教えていただいたとおりやりましたら、私の理想としていることが出来ました。
ただ、ここから先、チェックされた数と、取消線が入った物以外の項目数を表示したいのです。
ご迷惑をおかけいたしますが、もしお分かりでしたらお教え下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- その他(Microsoft Office) (至急)Googleのスプレッドシートの条件付き書式について 2 2022/09/11 08:50
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Gmail フィルター設定方法が分からん 1 2023/04/22 17:26
- その他(パソコン・スマホ・電化製品) iPadのデータ通信量を節約したい・自動アップデートについて 2 2023/07/01 10:01
- JavaScript jquery 診断コンテンツにチェックボックスを付けたいです 3 2023/01/19 18:31
- Access(アクセス) アクセスで、androidのスマホサイズのフォームは作れますか?テキストとチェックボックスだけのフォ 1 2023/05/31 00:53
- Excel(エクセル) エクセルVBAでチェックボックスにチェックを入れる 1 2022/09/14 00:52
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
白血球が多いとどんな心配があ...
-
彼女のことが好きすぎて彼女の...
-
EXCELで条件付き書式で空白セル...
-
至急!尿検査前日にオナニーし...
-
甲状腺が腫れているが血液検査...
-
検便についてです。 便は取れた...
-
値が入っているときだけ計算結...
-
これって喉仏ですか? 私は女性...
-
2つの数値のうち、数値が小さい...
-
勃起する時って痛いんですか? ...
-
【Excelで「正弦波」のグラフを...
-
尿検査前日に自慰行為した時の...
-
エクセルのグラフで、値0のとき...
-
精子が黄色?
-
MIN関数で空白セルを無視したい...
-
リンク先のファイルを開かなく...
-
EXCELで式からグラフを描くには?
-
Excelで""で囲む方法
-
小数点以下を繰り上げたものを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
白血球が多いとどんな心配があ...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
尿検査の前日は自慰控えたほう...
-
精子が黄色?
-
中出しをするとお腹が痛い・・・。
-
EXCELで条件付き書式で空白セル...
-
口の中に黒い血の塊
-
これって喉仏ですか? 私は女性...
-
2つの数値のうち、数値が小さい...
-
納豆食べた後の尿の納豆臭は何故?
-
EXCELで式からグラフを描くには?
-
小数点以下を繰り上げたものを...
-
excelでsin二乗のやり方を教え...
-
エクセル指定した範囲からラン...
おすすめ情報