1

作成中の複数ページのユーザーフォームの VBA コーディングで少し問題があります。ユーザーフォームの各ページにいくつかのテキストボックスがあり、別のスレッドへの次の回答で提供されているテキストボックスをクリアするために通常のユーザーフォームで使用していたコードがありました ( https://stackoverflow.com/a/8921247/2477891 )

コードは次のようになります。

Sub TB_enter(TB_name)
    If Len(Me.Controls(TB_name).Tag) = 0 Then
        Me.Controls(TB_name).Tag = Me.Controls(TB_name).Value
        Me.Controls(TB_name).Value = vbNullString
    End If
End Sub

Sub TB_exit(TB_name)
    'When you click out of the textbox and no information has been entered, returns original text
    If Len(Me.Controls(TB_name).Value) = 0 Then
        Me.Controls(TB_name).Value = Me.Controls(TB_name).Tag
        Me.Controls(TB_name).Tag = vbNullString
    End If
End Sub

テキストボックスをクリアするために使用される次のコードとともに:

Private Sub AdNtbx_Enter()
TB_enter ActiveControl.Name
End Sub

Private Sub AdNtbx_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    TB_exit ActiveControl.Name
End Sub

私の問題は、それらが複数ページにあるために機能しなくなったことです。次の行でエラーが発生します。

Me.Controls(TB_name).Value = vbNullString

問題/解決策の可能性について何か提案はありますか?

本当にありがたいです。ありがとう!

4

1 に答える 1

0

これがあなたが探しているものだと思います:

  Set Page1 = ThisWorkbook.VBProject.VBComponents("UserForm1").Designer.Controls("Multipage1").Pages("Page1")
  Page1.textbox1.Text = vbNullString

ThisWorkbook、UserForm1 などのプロパティをニーズに合わせて編集できますが、このコードを使用すると、マルチページ オブジェクトのテキスト ボックスをクリアできます。

于 2015-11-05T08:25:22.000 に答える