2

私は何時間もウェブ検索とT&Eの使用を無駄にしてきましたが、これが比較的簡単な問題であることを願っています。うまくいけば、誰かが助けることができます; o)

多くの処理を行う前にいくつかの入力データを取得するためのユーザーフォームを表示するExcelモジュールがあります。ユーザーフォームの下部には、「OK」と「キャンセル」というラベルの付いたコマンドボタンがいくつかあります。ユーザーがオプションボタンを変更し、「OK」または「キャンセル」をクリックして終了できるようにする必要があります。モジュールは、に基づいてプロセスを続行します。 「キャンセル」が押されたかどうか。フォームの[キャンセル]ボタンを押してもブール結果を読み取る方法が見つからないようです。99%は、何らかのパブリック/プライベート参照エラーであると確信していますが、私はまだそれを理解するのに十分な経験を積んでいません。コードスニペットは次のとおりです。


(モジュール1から)

Sub ModuleName()

Dim State as Boolean
' Display Parameter box
UserForm2.Show
If UserForm2.ButtonCancel Then
    State = True
Else
    State = False
End If

End Sub

キャンセルのTrueまたはFalseに基づいて、残りの手順を実行できます。


(UserForm2コード)

Private Sub ButtonCancel_Click()

 BtnCancel = True

Unload Me

End Sub

Private Sub ButtonOK_Click()

 BtnCancel = False

Unload Me

End Sub


Private Sub ButtonReset_Click()

'Set the Default Settings

NEAlias.Value = "True"

NoteIgnore.Value = "True"

ABIgnore.Value = "True"

LinkIgnore.Value = "True"

End Sub

Private Sub UserForm_Initialize()

Dim BtnCancel As Boolean

'Add the Text to the options

NEIgnore.Caption = "Ignore"

NoteIgnore.Caption = "Ignore"

ABIgnore.Caption = "Ignore"

LinkIgnore.Caption = "Ignore"

NEAlias.Caption = "Alias Only"

NoteAlias.Caption = "Alias Only"

ABAlias.Caption = "Alias Only"

LinkAlias.Caption = "Alias Only"

NEMove.Caption = "Move and Alias"

NoteMove.Caption = "Move and Alias"

ABMove.Caption = "Move and Alias"

LinkMove.Caption = "Move and Alias"

'Set the Default Settings

NEAlias.Value = "True"

NoteIgnore.Value = "True"

ABIgnore.Value = "True"

LinkIgnore.Value = "True"

End Sub

それでおしまい。シンプルなはずなのに困ります。助けてくれるTIA!

4

1 に答える 1

3

【解決済み】やっとわかった。Module1 の Declarations セクションに次のステートメントが必要でした。

パブリック BtnCancel をブール値として

于 2010-03-06T14:52:18.883 に答える