エクセルのVBでユーザーフォームをコピーしたいのですが。
例えば、「ユーザーフォーム1」と「ユーザーフォーム2」を同じ形式で作成し、リンクするセルのみを変えたいのです。
今は、それぞれのコントロールをコピーしてます。
いい方法ありますか?というか可能ですか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

●コピーの方法をもう少し詳しく書くと、


(1)まずUserForm1(ユーザーフォームを挿入した時のデフォルトのオブジェクト名)は完成したフォームとします。
(2)UserForm1を選択して、フォーム上の何も無い所を右クリック、すべて選択。
(3)コントロールのある所にマウスを移動し、右クリック、コピー。
(4)次にユーザーフォームを挿入(UserForm2が挿入されたとします)
(5)UserForm2を選択して、フォーム上の何も無い所を右クリック、貼り付け。

これでできるように思いますが・・・(Excel2000、Excel97で確認)


●エクスポートの方法としては、
(1)まずプロジェクトエクスプローラを表示しておきます。
(2)プロパティウインドウも表示しておきます。(表示→プロパティウインドウ)
(3)プロジェクトエクスプローラでUserForm1を選択。
(4)右クリックし、ファイルのエクスポートを選択。
(5)どこかのフォルダに保存します。(UserForm1.frmで保存したとします)
(6)UserForm1のプロパティウインドウのオブジェクト名を例えばUserForm1aに変えます。
(7)プロジェクトエクスプローラで右クリックし、ファイルのインポートを選択。
(8)保存したUserForm1.frmを選択。開くボタンでインポートされます。
(9)プロパティウインドウで、インポートされたユーザーフォームのオブジェクト名を例えばUserForm1bに変えます。

以上で同じフォームが2つできたと思いますが・・・(これもExcel2000、Excel97で確認)
    • good
    • 0
この回答へのお礼

今度はうまくいきました。
まだまだ未熟者のため、きちんと操作できてませんでした。
わからない事が出てきたら、また質問させて下さい。
本当にありがとうございました。

お礼日時:2001/10/05 20:10

>エクセルのVBでユーザーフォームをコピーしたいのですが。


『VBEのデザインモードでコピー』として書きます。(マクロを実行することによってフォームをコピーしたい?)

コピーするなら、新しいユーザーフォームを挿入しておき、元のフォームを選択し、何もないところで右クリック、『すべて選択』でコントロールをコピーし新しいフォームに貼り付ければ1回の処理で済みます。ControlSourceは当然、個別に設定しなおします。

または、
(1)プロジェクトエクスプローラでコピーしたいフォームを選択し、右クリックし『ファイルのエクスポート』
(2)再度右クリックし『ファイルのインポート』で元のフォームを選択
ではダメでしょうか。ただし、同一ブックに同一名のフォームを作ることになるので、一時的に元のフォームのオブジェクト名を変更して(2)を実行することになります。

Excel2000で確認済です。ご参考に。
    • good
    • 0
この回答へのお礼

さっそくのお答えありがとうございます。
『すべて選択』の方法を試してみたのですが、コピーはできましたが、
新しいユーザーフォームへ貼り付けできません。
なぜでしょうか?
『プロジェクトエクスプローラ』の方法は、ファイル選択画面が出てきた後、どうしたらいいかわかりません。
教えていただけますか?

お礼日時:2001/10/04 08:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


人気Q&Aランキング

おすすめ情報