• ベストアンサー

ユーザーフォームのコピー?

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

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.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で確認)

pc-cad
質問者

お礼

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

その他の回答 (1)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

>エクセルのVBでユーザーフォームをコピーしたいのですが。 『VBEのデザインモードでコピー』として書きます。(マクロを実行することによってフォームをコピーしたい?) コピーするなら、新しいユーザーフォームを挿入しておき、元のフォームを選択し、何もないところで右クリック、『すべて選択』でコントロールをコピーし新しいフォームに貼り付ければ1回の処理で済みます。ControlSourceは当然、個別に設定しなおします。 または、 (1)プロジェクトエクスプローラでコピーしたいフォームを選択し、右クリックし『ファイルのエクスポート』 (2)再度右クリックし『ファイルのインポート』で元のフォームを選択 ではダメでしょうか。ただし、同一ブックに同一名のフォームを作ることになるので、一時的に元のフォームのオブジェクト名を変更して(2)を実行することになります。 Excel2000で確認済です。ご参考に。

pc-cad
質問者

お礼

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

関連するQ&A

  • ユーザーフォームをコピーするには?

    エクセルでVBEからユーザーフォームを作りそれをコピーし別のエクセルファイルで使いたいのですがどうすればよいでしょうか?

  • ユーザーフォームでセルを選択

    エクセルのVBAでユーザーフォームに数値を入力してセルを選択することは可能でしょうか? 例えば、列はAに固定していいのですが、ユーザーフォームに「123」と入力してボタンを押せば「A123」のセルがアクティブになるようなユーザーフォームを作成したいのですが方法がわかりません。 よろしくお願いします。

  • ユーザーフォーム上のコンボボックスのリンク先はどうやって指定?

    エクセル97です。ユーザーフォームにおいたコンボボックスに表示させたいワークシート上のリスト、およびコンボボックスで選択された値をリンクさせたいセルの指定方法がわかりません。オプションボタンやチェックボックスのリンク先指定方法もわかりません。またユーザーフォームには「OK」「キャンセル」ボタンもないのでしょうか? エクセル95のときはダイアローグシートにコンボボックスを置き、コントロールの書式設定で簡単に指定が出来たのですが、97に変えてからは、敢えてエクセル5.0のダイアローグを挿入しないといけないようなので、出来ればユーザーフォームで作ってみたいのです。どうかよろしくお願いします。

  • エクセルのユーザーフォームをコピーしたい。

    エクセルの2000です。VBAで作ったユーザーフォーム のフォームを他のブックのVBAにコピーをしたいのですが可能でしょうか?可能であれば手順をお教え頂ければ 有りがたいです。

  • エクセルのユーザーフォームについて

    エクセルのユーザーフォームについて教えてください。 ユーザーフォームにてメニュー画面を作成しました。 ユーザーはメニューからの操作だけでエクセルシートを作成できるようなマクロをつくりました。 ユーザーフォームのコマンドボタンでEXCELを終了させることはできますか? VBAの記述方法も教えてください。

  • エクセルのユーザーフォーム

    アクセスのフォーム上でコマンドボタン等のコントロールをアクティブにして 矢印キーを押すと、該当のコントロールが移動しますが、 エクセルのユーザーフォーム上ではこの動作が出来ません。 なぜですか? 「エクセルだから」でしょうか? そもそも「フォーム」と「ユーザーフォーム」は別物と考えればいいのでしょうか?

  • ExcelVBAで、ユーザーフォームを新規Bookにコピーしたい

    シートをコピーして新規Bookで保存するマクロを作成しています。 このシートには「クリックするとユーザーフォームを開く」ボタンをつけているのですが、コピー先のBookにユーザーフォームをコピーすることができません。 (全て自動化したいので、両方のBookをVBEで開いてドラッグでコピーするようなことは考えていません。) 良い方法がありましたら、アドバイスください。 よろしくお願いします。

  • ユーザフォーム(VBA)で入力した内容をシートへコピーするには

    ユーザフォーム(VBA)でテキストボックスとボタンを作成しました。 このテキストボックスに入力した内容をボタンを押すことでシート1のA1セルにコピーしたいのです。こんな簡単な感じなのですが、 プログラムはどのようにしたらよいのでしょうか?教えてください。 それと、このエクセルファイルを開き、マクロを有効にするのボタンを押すと思うのですが、そのときにすでにユーザフォームが表示されているようにしたいのですが・・・どうすればいいのでしょうか? ※できたらでよいのですが、もう一つボタンを作成し『クリア』ボタンということで、テキストボックスに入力した内容だけをクリアさせるボタンも作ろうとおもうのですが、それはどうしたらよいのでしょうか? 困っています。教えてください。

  • ExcelVBA ユーザーフォーム

    エクセルのユーザーフォームで、フォームを閉じることに制限をかけることは可能ですか? AccessフォームやVBにある'CloseButton'というプロパティが無いようですが。。

  • エクセルのユーザーフォームについて

    エクセルマクロのユーザーフォームのテキストボックスに セルの値を表示する方法で質問です。 ユーザーフォームを表示するとその時点での セルの値はテキストボックスに表示されているのですが ユーザーフォームを表示したまま 別のブックのセルを選んだ際に そのセルの内容がテキストボックスに表示されるようにしたいです。 ボタンや、なにかをするわけではなく 自分で任意のセルを選択したら、という事です。 ユーザーフォームには selectionchange などがないのでどうすれば良いかわかりません。 宜しくお願いします。

専門家に質問してみよう