質問: エクセルで参照セルを一つずつ下げるボタンと、再計算ボタンの作り方を教えてください。 今、英単語の一問一答クイズを作っています。 現状では、 シート1 A列がRAND関数 B列がA列を参照したRANK関数 C列が英単語 D列が和訳 で、シート2のA1セルに=VLOOKUP(1,’シート1’!$B$1:$C$100,2,False) としてF9で再計算しながらシート2のA1セルをランダムに変えてます。 これだと、単語毎の出現率に差が出ちゃうと思うので、 1.再計算ボタンでシート1の英単語100個を並び替え 2.次はボタンを押すと並び替えた100個の単語を上から順にシート2のA1に反映。(できれば戻るボタンも欲しい) 3.100個見終わったら「おしまい」が表示される。 1.の作業に戻る こんな感じのマクロを組みたいのですが、いかんせん知識がないので質問させていただきました。 皆さんの知恵を拝借させていただけないでしょうか。
回答: シート2のマクロに次のマクロを記述し、適当にシート内にボタンを3つ配置して、リセット、戻る、進むのマクロを割り当ててください。 再計算を手動にすることで、乱数が再計算されないようにしています。 Dim X As Integer Sub リセット() Application.Calculate Application.Calculation = xlCalculationManual X = 1 問題表示 End Sub Sub 進む() X = X + 1 If X > 100 Then MsgBox "おしまい" Else 問題表示 End Sub Sub 戻る() If X > 1 Then X = X - 1 問題表示 End Sub Sub 問題表示() Range("A1").Value = WorksheetFunction.VLookup(X, Sheet1.Range("B:D"), 2, False) End Sub