• 締切済み

エクセルのVBAで質問です。

ExcelのVBAで質問です。コントロールで「1年1組」、「1年2組」、「1年3組」と定義されたコンボボックスと、「次へ」、「前へ」のボタンを作ります。コンボボックスで例えば「1年2組」を選択した時は、その下に別のbookにある1年2組の生徒の情報一覧を表示します。「次へ」ボタンを押すとコンボボックス内も「1年3組」と表示が変わり、下に表示される生徒の情報も別のbookの「1年3組」のものと切り替わります。同様に、「前へ」ボタンではコンボボックス内、生徒情報一覧それぞれが「1年1組」に変わります。ただ、コンボボックスが「1年1組」を選択した状態で「前へ」ボタンを押した時と、「1年3組」を選択した状態で「次へ」を押した時は、何もアクションがおこらないようにしたいと考えています。VBAではどのような方法があるのでしょうか?

みんなの回答

  • ABOM
  • ベストアンサー率0% (0/0)
回答No.2

ユーザーフォームのコードにIF文でマクロ指示を指定すればできます。Macro1~3は自動記録を使えば自由に動作を設定できます。下記にコードを書きます Private Sub ComboBox1_Change() If ComboBox1.Value = "1年1組" Then Application.Run "Macro1" Else If ComboBox1.Value = "1年2組" Then Application.Run "Macro2" Else If ComboBox1.Value = "1年3組" Then Application.Run "Macro3" Else End If End If End If End Sub Private Sub CommandButton1_Click() If ComboBox1.Value = "1年2組" Then ComboBox1.Value = "1年1組" Else If ComboBox1.Value = "1年3組" Then ComboBox1.Value = "1年2組" Else End If End If End Sub Private Sub CommandButton2_Click() If ComboBox1.Value = "1年1組" Then ComboBox1.Value = "1年2組" Else If ComboBox1.Value = "1年2組" Then ComboBox1.Value = "1年3組" Else End If End If End Sub Private Sub UserForm_Initialize() Dim myAr As Variant myAr = Worksheets("Sheet2").Range("A2:A4").Value With ComboBox1 'リストボックスのプロパティを指定 .Width = .Width * 1 .ColumnCount = 2 .List = myAr End With ComboBox1.Value = "1年1組" End Sub

すると、全ての回答が全文表示されます。
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

こんな感じでしょうか。 sub 「前へ」ボタンのイベント if コンボボックスが「1年1組」 then Exit sub <処理> end sub >何もアクションがおこらないようにしたいと考えています。 ボタンの機能をプロパティで無効(淡色表示)にして、操作できないようにする方が、ユーザーには解りやすいかと思います。

すると、全ての回答が全文表示されます。

関連するQ&A