ここから本文です

EXCELのマクロで簡単なアンケートの作成方法を教えてください!!

num********さん

2009/5/2616:09:19

EXCELのマクロで簡単なアンケートの作成方法を教えてください!!

選択肢が4つあって、ボタンを1回押すと結果が別のセルに集計されればOKです。

イメージは、質問「好きな色は?」
選択肢①あか ②きいろ ③あお ④みどり

で、それぞれアンケートを答える人がボタンを押すと、すぐ下に集計結果が出ればOKです。
①あか⇒5人 ②きいろ⇒2人 ・・・・のようにすぐ見える感じで。

欲を言わせてもらえるなら、ボタンを押したときに「ご協力ありがとうございます」とメッセージをつけられたら・・
あと、男女別にも集計したくて、男性で”①あか”が好きな人が何人。というのが分かれば、なおうれしいです。

よろしくお願いしますm(._.)m ペコッ

閲覧数:
6,345
回答数:
2
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

うさこさん

2009/5/2802:08:00

こんな感じでいかがでしょう?

添付ファイルを見てください。
Sheet1にはボタンを作ってください。
ボタン「男」のコマンドボタンはプロパティでオブジェクト名を「BtMan」に設定してください。
ボタン「女」のコマンドボタンはプロパティでオブジェクト名を「BtWman」に設定してください。
ボタン「①赤」のコマンドボタンはプロパティでオブジェクト名を「BtRed」に設定してください。
ボタン「②黄」のコマンドボタンはプロパティでオブジェクト名を「BrYellow」に設定してください。
ボタン「③青」のコマンドボタンはプロパティでオブジェクト名を「BtBlue」に設定してください。
ボタン「④緑」のコマンドボタンはプロパティでオブジェクト名を「BtGreen」に設定してください。

Private Sub BtMan_Click()
Sheets("Sheet1").Range("D3").Value = "あなたは男性ですね"
Sheets("Sheet2").Range("D1").Value = 1
End Sub
Private Sub BtWman_Click()
Sheets("Sheet1").Range("D3").Value = "あなたは女性ですね"
Sheets("Sheet2").Range("D1").Value = 2
End Sub
Private Sub BtRed_Click()
Sheets("Sheet1").Range("D9").Value = "あなたの好きな色は「赤」ですね"
Sheets("Sheet2").Range("E1").Value = "RED"
End Sub
Private Sub BrYellow_Click()
Sheets("Sheet1").Range("D9").Value = "あなたの好きな色は「黄」ですね"
Sheets("Sheet2").Range("E1").Value = "YELLOW"
End Sub

Private Sub BtBlue_Click()
Sheets("Sheet1").Range("D9").Value = "あなたの好きな色は「青」ですね"
Sheets("Sheet2").Range("E1").Value = "BLUE"
End Sub

Private Sub BtGreen_Click()
Sheets("Sheet1").Range("D9").Value = "あなたの好きな色は「緑」ですね"
Sheets("Sheet2").Range("E1").Value = "GREEN"
End Sub

Private Sub BtOk_Click()
Dim nRow As Long
Dim i As Long
Dim SEX As Integer
Dim R(2) As Integer
Dim Y(2) As Integer
Dim B(2) As Integer
Dim G(2) As Integer

Sheets("Sheet2").Select
Sheets("Sheet2").Range("D1").Select
If Trim(Sheets("Sheet2").Range("$D$1")) = "" Then
GoTo ErrorSyori
End If
Sheets("Sheet2").Range("E1").Select
If Trim(Sheets("Sheet2").Range("$E$1")) = "" Then
GoTo ErrorSyori
End If
'--アンケート件数を格納
If Sheets("Sheet2").Range("C1").Value = Null Then
Sheets("Sheet2").Range("C1").Value = 1
Else
Sheets("Sheet2").Range("C1").Value = Sheets("Sheet2").Range("C1").Value + 1
End If
nRow = Sheets("Sheet2").Range("C1").Value
'--アンケート結果(今何件目?)
Sheets("Sheet2").Range("C1").Value = nRow
'--アンケート結果(性別)
Sheets("Sheet2").Range("A" & nRow).Value = Sheets("Sheet2").Range("D1").Value
'--アンケート結果(色)
Sheets("Sheet2").Range("B" & nRow).Value = Sheets("Sheet2").Range("E1").Value
'--アンケート結果を集計
For i = 1 To nRow
SEX = Sheets("Sheet2").Range("A" & i).Value
Select Case Sheets("Sheet2").Range("B" & i).Value
Case "RED": R(SEX) = R(SEX) + 1
Case "YELLOW": Y(SEX) = Y(SEX) + 1
Case "BLUE": B(SEX) = B(SEX) + 1
Case "GREEN": G(SEX) = G(SEX) + 1
End Select
Next i
'--アンケート結果を表示
Sheets("Sheet1").Range("B21").Value = "男性で ①赤 が好きな人は " & R(1) & " 人です"
Sheets("Sheet1").Range("B22").Value = "男性で ②黄色が好きな人は " & Y(1) & " 人です"
Sheets("Sheet1").Range("B23").Value = "男性で ③青 が好きな人は " & B(1) & " 人です"
Sheets("Sheet1").Range("B24").Value = "男性で ④緑 が好きな人は " & G(1) & " 人です"
Sheets("Sheet1").Range("G21").Value = "男性で ①赤 が好きな人は " & R(2) & " 人です"
Sheets("Sheet1").Range("G22").Value = "男性で ②黄色が好きな人は " & Y(2) & " 人です"
Sheets("Sheet1").Range("G23").Value = "男性で ③青 が好きな人は " & B(2) & " 人です"
Sheets("Sheet1").Range("G24").Value = "男性で ④緑 が好きな人は " & G(2) & " 人です"
Sheets("Sheet1").Select
MsgBox ("ご協力ありがとうございました")
Sheets("Sheet1").Range("D3").Value = ""
Sheets("Sheet1").Range("D9").Value = ""
Sheets("Sheet2").Range("D1").Value = ""
Sheets("Sheet2").Range("E1").Value = ""
Sheets("Sheet1").Select
Exit Sub

ErrorSyori:
Sheets("Sheet1").Select
gsMsg = MsgBox("2問ともお答えください。", , "もう一度お願いします")
Sheets("Sheet1").Select

End Sub


あとは、適当に飾り付けして下さい。

こんな感じでいかがでしょう?

添付ファイルを見てください。
Sheet1にはボタンを作ってください。...

質問した人からのコメント

2009/5/29 10:53:35

感謝 ありがとうございます。イメージがつかめました。
参考にさせて頂きます。

ベストアンサー以外の回答

1〜1件/1件中

非公開さん

2009/5/2818:55:57

わかんない人の為に エクセルには「おまけで」表示 ツールバー 「フォーム」

ここに 初心者用のツール(チェックボックス等々)がありますから

どこか任意セルとリンクさせれば集計は容易でしょう。

メッセージなんぞは・・・入力規則か 条件付書式で何とかなるし。

参考程度の追記です・・・一応 今後の為にも

固定でPCを配置して 入力してもらうとか? ならともかく

それは現実的にありえないでしょう。


通常は・・・チェックボックス等で クリックされたら True とか 1とか
当然 False (チェックしなければ 空白とか ゼロとか?)

これを 任意の「テキストファイルに加算して上書き」
任意のテキストファイルは ... 任意の Web上のファイル
ここに 書き出すんじゃナインかな?
メモリも食わないし。

アンケートなどは・・・選択程度(クリック程度)にするのがベストかも

集計側は このテキストファイルを エクセルにでも書き出すとか?

手元のPC 且つ 手元のファイルのみでは・・・厳しいかもね?

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる