2

初めてvbaを学びながら、学校のプロジェクトに取り組んでいます。このプロジェクトは、結婚式の計画ワークシートを中心に構築されています。数式と書式設定がユーザーによって壊れないように、ワークシートをロックダウンする予定です (私の婚約者が方法を見つけるでしょう)。これを行うために、マルチページ コントロールの異なるページのテキスト ボックスを介してデータを収集するユーザー フォームを作成しています。

この例には 1 つのページしかありませんが、後で「アパレル」などの他のページが表示されます。 ここに画像の説明を入力

現在、「クリア」ボタンの _Click に次のコードがあります。

Dim C As Control


For Each C In frmExpenses.Controls
    If TypeName(C) = "TextBox" Then
        C.Value = ""
    End If
Next C

これにより、テキスト ボックスからデータが効果的に消去されます。ただし、マルチページのアクティブなページのみでデータをクリアできるようにしたいと考えています。たとえば、後で「花」というタブがあり、それがアクティブなタブである場合、「アパレル」のデータを残し、「花」のデータをクリアしたい。

上記で可能な限り徹底してみました。何か説明が必要な場合はお知らせください。

4

1 に答える 1

4

これを試して

特定のページ (たとえば 1)

Dim ctl As Control

For Each ctl In Me.MultiPage1.Pages(1).Controls
    If TypeName(ctl) = "TextBox" Then  ctl.Value = ""
Next

ActivePage から

Dim ctl As Control

For Each ctl In Me.MultiPage1.Pages(Me.MultiPage1.Value).Controls
    If TypeName(ctl) = "TextBox" Then ctl.Value = ""
Next
于 2013-04-25T21:38:38.313 に答える