2012-05-30 39 views
5

私はユーザーフォームに複数のページがあります。実行時に、ユーザーはいつでもx個のページを追加することができます。各ページの要素は同じになります。これらの要素を複製する方法があるのか​​、新しいページごとに同じ要素を再作成する必要があるのでしょうか?その場合、要素を配置するページ上の場所を指定するにはどうすればよいですか?ExcelでVBAを使用して複数のページを1つのページから別のページにコピーする

enter image description here

+0

コピーして貼り付けたり、最初から作成して複製することができます –

答えて

7

トリックは、1ページ目にフレーム内のすべてのコントロールを配置することで、その後、残りが容易になる:)

このコードはPage2を作成した後Page1からPage2にコントロールをコピーして整列しますそれに応じて

Option Explicit 

Private Sub CommandButton2_Click() 
    Dim l As Double, r As Double 
    Dim ctl As Control 

    MultiPage1.Pages.Add 

    MultiPage1.Pages(0).Controls.Copy 
    MultiPage1.Pages(1).Paste 

    For Each ctl In MultiPage1.Pages(0).Controls 
     If TypeOf ctl Is MSForms.Frame Then 
      l = ctl.Left 
      r = ctl.Top 
      Exit For 
     End If 
    Next 

    For Each ctl In MultiPage1.Pages(1).Controls 
     If TypeOf ctl Is MSForms.Frame Then 
      ctl.Left = l 
      ctl.Top = r 
      Exit For 
     End If 
    Next 
End Sub 

SNAPSHOT

enter image description here

+0

Genius!ありがとう! – Ehudz

+0

上記のコードを実行すると、「ランタイムeエラー '-2147417949(80010108)':クライアントからdiconnectedとして呼び出されたオブジェクトの自動化エラーです。 " – Ehudz

+0

どの行でエラーが表示されますか?私はもう一度それをテストし、それは動作します。 –

0

「実行時エラー '-2147417949(80010108)' は、フォーム上のどこか他のフレームを持つことによって引き起こされる可能性がある。他のフレームを削除してください

関連する問題