2016-10-28 13 views
1

私はこの機能を持つユーザーフォームがあります:私はボタンから私のユーザーフォームを呼び出すにはUserFormでラベルを削除するには?

Public MyVariable As String 
Private Sub UserForm_Initialize() 
[...my code...] 
End Sub 

を:

Sub CallUserForm_Appro() 
    UserForm1.MyVariable = "Appro" 
    UserForm1.Show 
End Sub 

Sub CallUserForm_User() 
    UserForm1.MyVariable = "User" 
    UserForm1.Show 
End Sub 

私の目標は、ユーザーがボタンをクリックがCallUserForm_Appro()をコールする場合は、「Label1を」を削除することです

Public MyVariable As String 
Private Sub UserForm_Initialize() 

[...my code...] 
If MyVariable = "Appro" Then 
    UserForm1.Controls.Remove "Label1" 
End If 

End Sub 

だから、私は何をするUserForm_Initialize()でみました

エラーはありませんが、Label1は常に表示されます。

答えて

1

これはfalseにラベルの可視性を設定する方法である:

UserForm1.label1.Visible = false 

そして、これ以上は表示されません。

+0

Thx、動作します。だから、あなたのコードをCallUserForm_Appro()関数に追加しました – Ferfa

+0

@Ferfa、ありがとう、いい金曜日に! :) – Vityata

1

`Initializeイベントは、変数が設定される前に発生します(フォームが最初に読み込まれずにプロパティにアクセスできないため)。

実行時にコントロールが追加される限り、代わりにActivateイベントを使用する必要があります。デザインタイムコントロールの場合は、削除することはできず、非表示にするだけです。また、変数がでない場合は、が「Appro」に設定されている場合にのみフォームに追加することができます。

+0

あなたの説明のためのThx – Ferfa

関連する問題