0

質問があります:

通常の [OK] ボタンと [キャンセル] ボタンを含むユーザー フォームを作成する必要があります。また、各セットがフレーム内に配置された 2 セットのオプション ボタンも含める必要があります。最初のセットのキャプションは「バスケットボール、野球、サッカー」、2 番目のセットのキャプションは「テレビで見る」、「試合に行く」である必要があります。プログラムの実行時にユーザーにフォームが表示されるように、イベント ハンドラーとコードをモジュールに記述する必要があります。ユーザーがいくつかの選択を行って [OK] をクリックすると、「好きなスポーツはバスケットボールで、普段はテレビで見ています」などのメッセージが表示されます。ユーザーが [キャンセル] をクリックすると、"Sorry you don't want to play" というメッセージが表示されます。

ここに画像の説明を入力

ほとんど機能していると思いますが、マクロを正常に実行できない理由がわかりません。

私のコードは:

Option Explicit

Private Sub CommandButton2_Click()


MsgBox ("sorry if you don't want to play")
End Sub

Private Sub commandbuttons_Click()
Dim optbasket As String, optbaseball As String, optfootball As String
Dim optwog As String, optgtg As String

 Select Case True
 Case optbasket
   optbasket = True
 Case optbaseball
   optbaseball = True
 Case optfootball
   optfootball = True
  End Select

If optwog Then
  optwog = True
  Else
  optgtg = True
  End If

btnok = MsgBox("you favorite sport is " & Frame1.Value & "you usually " & Frame2.Value & ",")
End Sub

Private Sub OptionButton1_Click()

End Sub

Private Sub btmcancel_Click()

End Sub

Private Sub btnok_Click()

End Sub

Private Sub Frame1_Click()

End Sub

Private Sub Frame2_Click()

End Sub

Private Sub optbaseball_Click()

End Sub

Private Sub optbasketball_Click()

End Sub

Private Sub optfootball_Click()

End Sub

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

4

2 に答える 2

3

ここにはいくつかのことがあります:

  1. ボタンに「OkButton」や「CancelButton」などの名前を付ける必要があります。後で追跡しやすくなります。ラジオ ボタン (野球、バスケットボールなど) についても同じことが言えます。
  2. selectステートメントやifステートメントは必要ありません
  3. Frame1 と Frame2 に呼び出すことができる .Value プロパティがあるとは思わない

  4. ここにいくつかのサンプルコードがあります。クリックできるオブジェクトをワークシートに追加します。この例では、長方形オブジェクトを挿入しました。挿入タブから。次に、UserForm コードで、Ok ボタンの名前を OkButton に変更し、関数 OkButton_click を追加しました。クリックすると、ラジオ ボタンの値を取得します。それに応じて、野球、バスケットボール、サッカー、ウォッチアンドゴーと名付けました。それらのいずれかが true の場合、ゲームの適切なタイトルであると宣言した文字列である "game" を割り当てます。その人が試合に行くのが好きか、観戦するのが好きかについても同じことをしました。次に、CancelButton_Click 関数を追加して、userForm を閉じました。

    Private Sub Rectangle1_Click()
       UserForm1.Show
    End Sub
    
    Private Sub OkButton_Click()
        Dim game as String, watchOrGo as String
        If baseball Then game = "baseball"
        If basketball Then game = "basketball"
        If football Then game = "football"
    
        If watch Then watchOrGo = "watch"
        If go then watchOrGo = "go"
    
        okbtn = Msg("Your favorite sport is " & game & ". You usually " & watchOrGo)
     End Sub
    
     Private Sub CancelButton_Click()
        cnclbtn = Msg("Sorry you don't want to play")
        Unload Me
     End Sub
    
于 2013-11-05T17:09:20.957 に答える
0

[OK] をクリックしたときにコードcommandbuttons_Click()を実行する場合は、[OK] ボタンのクリック ハンドラーにコードを配置する必要があります btnok_Click()CommandButton2_CLick()とについても同様ですbtncancel_Click()

于 2013-11-05T03:50:53.143 に答える