質問: Excel入門用の教材を作っています。 うまくできたら「OK」を表示するように、たとえば次のようなチェック用の式を使っています。 =IF(A1="あいうえお","OK","") ところで、関数など数式を入力させる練習問題の場合、入力した数式そのものが正しいかチェックする方法が思い当たりません。 セルに入力した式そのものを文字列として取得できる関数(の組み合わせ)があればよいのですが、可能でしょうか? 次の xxx のようなものです。 ? =if(xxx(A11)="=sum(A1:A10)","OK","") もし無理であれば、セルに入力されているのが、単なる数値ではなく式であることを検査する方法でもかまいません。 どうかご教示ください。よろしくお願いします。
回答: 例えば回答を記入するセルをC1 前もって回答が書いてあるセルをB1とします B1とC1のセルの書式設定をテキストにします。 するとB1とC1を比較できます 例えばD1に =if(B1=C1,"OK","NG")など 他に解答を伏せたい場合はマクロを使って以下のような 方法があります。あくまでもテキストでの比較判定となります。 Sub Macro1() Dim Shiki, Atai As String '解答を前もって用意する Shiki = "=If(A1=" & Chr(34) & "あいうえお" & Chr(34) & "," & Chr(34) & "OK" & Chr(34) & "," & Chr(34) & NG & Chr(34) & ")" 'c1の値が解答と同じかどうか判断 Atai = Range("c1").Value If Shiki = Atai Then MsgBox ("正解です") Else MsgBox ("不正解です") End If End Sub 後は応用してください。