• 締切済み

エクセルVBAでユーザーフォームのコマンドボタンをクリックするたびに

社内アンケートを作っています。質問は80問あり、1問ごとにユーザーフォームが表示されます。ユーザーフォームには「次へ進む」のコマンドボタンと質問内容を表示させるテキストボックスがあり、1問目を答えて「次へ進む」をクリックすると2問目の質問が表示され、さらに「次へ進む」をクリックすると3問目が表示されるという風にしたいのですが、2問目以降の質問を表示させられません。うまく表示させるにはどういうコードにすればよいのでしょうか?

みんなの回答

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3
miho_feb5
質問者

お礼

ありがとうございました!

回答No.2

やり方は色々あると思いますが、肝心の回答結果などをどうするのかが分かりません。 次へで次の質問を出すのは簡単ですが、回答をどう管理したいのか等がわかりません。集計したりするんでしょうから重要だと思います。 結果をどこかのシート等に保存していかないと回答してエクセルを終了したら回答結果はどこにも残らないし。また1人に1ファイル配ってやらせるのか共有フォルダに置いておいてやらせるのかなどによっても変わってくるだろうし。

miho_feb5
質問者

補足

説明不足でした。質問番号と回答結果はシートに入力・保存しています。1人に1ファイル配る予定です。 これまではペーパーものをOCRで読み取っていましたが、こっちのほうが確実で集計作業早くない?という意見が出たもので、、、。

noname#102340
noname#102340
回答No.1

回答形式が不明なのでオプションボタンを2つ配置しYes,Noの二択で答えるということにしました。参考までに。 使用コントロール TextBox1 cmdSusumu optYes optNo 'コードここから Dim Question(80) As String Dim QNo As Long Private Sub UserForm_Initialize() Question(1) = "1ですか?" Question(2) = "2ですか?" Question(3) = "3ですか?" '  : Question(80) = "80ですか?" QNo = 1 TextBox1.Text = Question(QNo) End Sub '次へ進むボタン Private Sub cmdSusumu_Click() If optYes Or optNo Then  '回答しないと進めない If optYes Then 'yesを記録 optYes.Value = False Else 'noを記録 optNo.Value = False End If If QNo < 80 Then  '次の問題の表示 QNo = QNo + 1 TextBox1.Text = "" TextBox1.Text = Question(QNo) End If End If End Sub

miho_feb5
質問者

お礼

ありがとうございました! オプションボタンはラジオボタンのことでしょうか?説明不足でしたが回答はラジオボタンで5段階評価、回答結果はシートに入力・保存しています。 変数の宣言に対して苦手意識を持っているので、Dim i As ~とかってなるとそれだけでため息出ちゃいます。

関連するQ&A