2

毎回動的に生成する必要があるExcelのユーザーフォームに取り組んでいます。形式がまったく同じである多くの (100 以上の) 行を一覧表示できます。これらは、次のコード スニペットによって生成されます。

' ctextbox
Set ctl = .Controls.Add("Forms.Textbox.1")
With ctl
    .Top = 12 + linetop
    .Left = 464.9
    .Width = 140
    .Height = 18
    .Name = FieldName & "_ctextbox"
End With
' cshow
Set ctl = .Controls.Add("Forms.CommandButton.1")
With ctl
    .Top = 13.1 + linetop
    .Left = 611.35
    .Width = 41.95
    .Height = 18
    .Name = FieldName & "_cshow"
    .Caption = "Show All"
End With
' confirm
Set ctl = .Controls.Add("Forms.Checkbox.1")
With ctl
    .Top = 13.5 + linetop
    .Left = 659
    .Width = 44.95
    .Height = 17.25
    .Name = FieldName & "_confirm"
    .Caption = "Confirm"
End With

確認チェックボックスが残りよりも小さく表示されるランダムな発生を除いて、問題ありません。以下のスクリーンショットは、私が何を意味するかを示しています。

フォームのスクリーンショット

以前にこの問題を経験した人はいますか?

4

2 に答える 2

1

repaintingコントロールを動的に追加した後、ユーザーフォームを使用することをお勧めします。

Repaintメソッドは、指定されたフォームの保留中の画面更新を完了します。フォームで実行すると、Repaintメソッドは、フォームのコントロールの保留中の再計算も完了します。

このメソッドは、オブジェクトの内容や外観が変更され、システムがその領域を自動的に再描画するまで待ちたくない場合に便利です。Me.Repaintフォームを再描画して表示を更新するだけです

于 2012-07-27T04:32:13.157 に答える
0

再描画が機能しないという同じ問題がありました。CheckBox AutoSize プロパティを True に設定することでこれを解決しましたが、もう問題はありません。

于 2014-04-04T11:59:23.483 に答える