
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
学校の課題ということなので、何か学習の目的があるんだろうと思うのですが、それは無視して良いですか?また、Excelが前提で良いんですよね?
それで問題なければ・・・、
添付画像のようなシートを作成して、次の動作をVBAで行ってみてはいかがでしょうか?
B1セルの内容で質問を表示し、回答でフィルタをかける。
次にC1セルの内容で質問を・・・を繰り返して、最終的に1行に絞る。
フィルタを掛けていくと質問によっては回答が「はい」または「いいえ」のみになるものが出てくるので、その質問はスキップして次の質問に進む。

No.5
- 回答日時:
こんばんは
単純な、Yes、Noの2分岐でよいのなら、2の倍数で設問の数が増えていくので、設問を並べておいて、選択してゆくようなループにしておけば良いのではないでしょうか?
回答をどうやって算出するおつもりなのか不明ですけれど、同様に1対1で回答を作成しておいてもよいかも。
あるいは、要素が1、2、4・・と増加するような2次元配列で設問を作成しておく方がわかりやすいかも知れませんね。
以下に、前者の考え方での、ごく簡単な一例をご参考までに。
(とりあえず、質問は4回までにしてあります)
Sub Sample()
Dim Questions, AnsWord, Answers(1 To 4)
Dim cnt, QNo, Ans, Q
AnsWord = Array(" Yes", " No")
Questions = Array( _
"first", "Yes", "No", _
"Yes-Yes", "Yes-No", "No-Yes", "No-No", _
"Yes-Yes-Yes", "Yes-Yes-No", "Yes-No-Yes", "Yes-No-No", _
"No-Yes-Yes", "No-Yes-No", "No-No-Yes", "No-No-No")
QNo = 0
For cnt = 1 To 4
Q = "Q." & cnt & vbLf & Questions(QNo) & " Question"
Ans = MsgBox(Q, vbYesNo)
If Ans = vbYes Then Ans = 1 Else Ans = 2
QNo = 2 * QNo + Ans
Answers(cnt) = "Q." & cnt & AnsWord(Ans - 1)
Next cnt
MsgBox "All Answers are" & vbLf & Join(Answers, vbLf)
End Sub
※ 設問や回答のデータは別ファイルなどにしておく方が、わかりやすいかも知れませんね。
※ 全てが2分岐ではなく、共通の設問がいくつかあってから分岐するようなパターンもありそうに思いますけれど・・・
No.4
- 回答日時:
問題を出す順番などは、既に決まっているのでしょうか?
決まっていれば、それをプログラムにするかたちになると思うのですが、
そのイメージが私にはイマイチ掴めないですね。
例えばですが、
最初の質問A 答えがYesなら変数に1、Noなら変数に2を入れる。
変数が1なら質問Bへ
変数が2なら質問Cへ
2番目の質問 答えがYesなら変数×10+1、Noなら変数×10+2を入れる
変数が11なら、質問〇へ 変数を10倍して、+1又は+2をする。
変数が12なら、質問〇へ
変数が21なら、質問〇へ
変数が22なら、質問〇へ
問題数の桁数の数字 10問なら、1111111111~2222222222と、
1と2の組み合わせとか
Do
質問
Select Case 変数
Case 1
’質問B
Case 2
’質問C
Case 11
’
Case 12
Case 21
Case 22
Case 111
Case 112
Case 121
Case 122
・・・・
End Select
変数=変数*10+回答(+1 又は +2)
Loop
No.3
- 回答日時:
No.2の者です。
2択の問題というのは分かりました。
質問は、どれ位の問題数を用意されるのでしょうか?
ある質問をして、次の質問がAになった場合、質問Bは出てこないという事に
なるのでしょうか? それとも、どこかで出て来る?
クラスメイトの人物を特定するのは、PC? それとも、その場にいる人?
問題だけを出す感じ?なのでしょうか? それとも、回答していく内に
絞り込みをしていって、特定の人物をPCで答えを出す?
No.2
- 回答日時:
こんばんは。
ExcelのVBAとの事ですが、やりたい事をもっと具体的に記載されると、
回答が付くかと思います。
アキネーターというものが、どの様なものか分からないので、アドバイスも
できないですが、質問に答えるのが、選択式になるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
プログラミングについて質問があり投稿させていただきました。 現在考えているのが0~4秒の間はAの作業
その他(プログラミング・Web制作)
-
きれいなコードを書いてもらうようにするにはどうしたらよいでしょうか?
その他(プログラミング・Web制作)
-
誰か助けてください。 私はプログラミングに興味がないのにそういう大学に入学しました。 当然、目的もな
その他(プログラミング・Web制作)
-
4
プログラミングに必要なソフト Python初心者です。 いざプログラミングを実行するにも必要なソフト
その他(プログラミング・Web制作)
-
5
自分のかいたスクリプトをまとめておく良い方法知りませんか?
その他(プログラミング・Web制作)
-
6
エクセル以外で麻雀の成績を管理する方法(プログラミングでやりたい)
その他(プログラミング・Web制作)
-
7
Excelマクロのコードができる方に質問します。
Visual Basic(VBA)
-
8
ジャバスクリプトでのことですが(初心者なのでできるだけ専門用語は少なくしていたらければうれしいです)
その他(プログラミング・Web制作)
-
9
プログラム
その他(プログラミング・Web制作)
-
10
どのプログラミング言語が最強ですか?
その他(プログラミング・Web制作)
-
11
vbaの場合 データの整形の必要があるか ケースバイケースと言われてしまいそうですが質問させていただ
その他(プログラミング・Web制作)
-
12
excel2021で実行できないマクロ。どこを直したらいいのか
Visual Basic(VBA)
-
13
VBA CSV取り込みについて
Visual Basic(VBA)
-
14
プログラミング
C言語・C++・C#
-
15
プログラムで重複した時間帯は、除去する方法
その他(プログラミング・Web制作)
-
16
きれいなコード vba vbaを勉強していますが上級者の書いたコードと初心者のものはどんな部分が一番
その他(プログラミング・Web制作)
-
17
ナップザック問題?をエクセルにて解決したいです。
Visual Basic(VBA)
-
18
VBAの質問です msg = ws.Cells(r, A").Value & "日に" & ws."
Visual Basic(VBA)
-
19
プログラム作成教えてください。大至急
C言語・C++・C#
-
20
VBA リストボックスをダブルクリックしデータを修正したいのですが…。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
大学でやりたいことが見つかり...
-
5
改行コードについて
-
6
pythonでメール送信
-
7
test([)コマンドによる条件判定
-
8
Lambdaを使いCloudWatch Logsか...
-
9
パイソンでのプログラミングに...
-
10
Macターミナルで実行中のプログ...
-
11
プログラミング python pandas ...
-
12
VBAでファイルを開くときにファ...
-
13
VBA(エクセル)で自動的にボタン...
-
14
batである文字列内に特定の文字...
-
15
バッチでテキストファイルから...
-
16
緯度、経度の 10進法と 60進法...
-
17
visual studio でインデントを...
-
18
コマンドプロンプト標準出力と...
-
19
html でのテキスト結合について
-
20
ホストする?
おすすめ情報
公式facebook
公式twitter
アプリというのは、今回で言うとエクセルでのプログラミングなのですがエクセルのことですかね??
抽象的な説明で申し訳ありません!
具体的に言うと、「その人は運動部ですか?」のような質問にはいいいえで答え、「はい」ならば次の質問A、「いいえ」ならば次の質問B…といったように分岐していく構造を作りたいです。
その中でクラスメイトの特徴が絞られていって、最終的にこの人だ!とわかるものになります。
説明不足でしたら言ってください、申し訳ないです。
問題数はだいたい20個ほどになります。
質問がAになった場合Bはでてきません。
クラスメイトの特徴別に質問を用意しているので、分岐していくと1人に絞り込めるような質問にはなっています。なので、最終的に絞り込めたらメッセージボックスで〇〇さんですね?と表示するところまでプログラムしておきたいです。PCに判断を任せるのではなく、質問のはいいいえに対応して表示する名前を決めておくという感じです。
ですので途中で特徴を絞り終えて、〇〇さんですね?にたどり着くところもあります。分岐の途中で「はい」なら次の質問に進み、「いいえ」なら絞り終えてプログラム終了になるようなところがいくつかできます。すべてのクラスメイトが同じ質問数にはなりません。
言葉足らずなところがあれば言ってください!