- ベストアンサー
EXCELで入力規則を使って問題を作りたい
タイトルどうりなんですが EXCELで入力規則を使って問題を作りたいのです A列に漢字を入力して B列にひらがなで読みを入力させる もし 読みが間違えていたら エラーメッセージを出したい 正解の場合はそのまま したのセルに進める というものを作りたいのですが よろしくお願いします
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
E列とF列に問題と正解の一覧を作成しておきます。 E列 F列 青空 あおぞら 夕日 ゆうひ 薔薇 ばら ・ ・ ・ ・ A1セルに、 =E1 A2セルに、 =IF(B1="","",E2) A2セルを、A3~A10にコピー(仮に10問としておきます) B1~B10に入力規則で、 設定タブの入力値の種類(A)をユーザー設定にし、 数式(F)に、 =B1=VLOOKUP(A1,E:F,2,FALSE) 入力時メッセージ、エラーメッセージ、日本語入力のタブは、 お好みで設定しておいて下さい。 以上までしておけば、A1セルに『青空』と表示され、 B1セルには『あおぞら』以外が入力できないようになります。 B1セルに入力されるとA2セルに『夕日』と表示されます。 最後に、簡易的に作ってみたので同じシートに問題と答えの一覧を作成していますが、 実際に問題として運用すると答えが見えたら問題にならないので、 別シート、非表示、シートの保護、別ファイルなどを使えばとりあえず対応らしい事はできると思います。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
>入力規則を使って問題を作りたいのです 質問者に、目算は有るのか。 回答者に方法を押し付けた(限定した)ような質問だが、やりたいことだけ説明し、「例えば」ということで、質問者のアイデアを述べるのが良いと思う。 ーー コンピュターを使ってチェックするのだから、何処かに正解の読みが必要で、仮名漢字辞書とか、何処かのシートのセルとか、別のデータベースが必要と思うが、セルに正解を置くのは正解が回答者に見えてしまう恐れがあり、シートの保護とか考えることにもなりかねない。 ーーー VLOOKUPで表を引いて、読みを探せばよいようだが、 H1:I10 対応表(説明の簡単のため同一シート内にした) 堪忍 カンニン ・・・ A列 B列 C列 堪忍 カンジン 正解 C1の式 =IF(B1="","",IF(B1=VLOOKUP(A1,$H$1:$I$10,2,FALSE),"正解","相違")) 検索表がSheet2になればSheet2!$H$1:$I$10のように変える。 ーー 私はVBAでやってみた 例データ A列 B列(入力)C列(結果)B列は全角カナで入れる約束 堪忍 カンニン 正解 正解 セイカイ 正解 首都 クビト 間違い シートのChangeイベントに Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then If Application.GetPhonetic(Range("A" & Target.Row)) = Target Then Range("C" & Target.Row) = "正解" Else Range("C" & Target.Row) = "間違い" End If End If End Sub ーー これはテストやっているとわかるが、仮名漢字変換の逆を使うので 代表的な読み1つしか出ない。そういう点から困った場合がひょっとして起こるかもしれない。 やはり質問者ナリの、質問漢字ー正解よみの対応データを作る必要が有るように思う。 ーーー VBAを使わない、入力規則を使う、良い回答がでればハッピーだが。
補足
別の列 例(H列)に読みを書いておいて H列は非表示にしておきます B列は H列を参照しています 早速回答ありがとうございます VBAというのがあるんですね 試してみます
- tom04
- ベストアンサー率49% (2537/5117)
一つの案ですが・・・ B列に正解の読みをひらがなで入力してC列を解答欄として入力規制すればできると思います。 C列の入力規制は ユーザー設定にして 数式をC1=B1 とし、 後は入力時メッセージ等を設定すればできるとおもいます。 ↑の回答では要望どおりにはならないでしょうか?
- saru1234
- ベストアンサー率37% (223/593)
補足願います。 読みが合ってるか違ってるかをどうやって判断するおつもりですか?
補足
別の列 例(H列)に読みを書いておいて H列は非表示にしておきます B列は H列を参照しています 早速回答ありがとうございます
お礼
早速 回答ありがとうございます おかげさまででいきました