全く同じユーザーフォームをもう一つ作りたい場合、どうしたらよいでしょうか。
手動で作る場合、コピー元のユーザーフォームや配置している各コントロールの大きさや設定などを全く同じにしようと思うと結構な手間がかかります。
そんな場合は、ユーザーフォームをコピーして再利用しましょう。その方法について勉強しましょう。
くるみこユーザーフォームをコピーして再利用する方法を勉強しておきましょう。
簡単そうに思えますが、注意しなければならないことがあるのでしっかり覚えておきましょう。



わかりました。よろしくお願いしますm(__)m
前回記事「標準コントロールのラベルでプログレスバーを表現する」はこちらです。


【この記事でわかることは】
・UserForm のコピーを作成する複数の方法
UserForm のコピーを作成する方法
前回の記事で使った UserForm を使って、実際にやっていきましょう。


UserForm1 に Frame1、Label1、Label2、CommandButton1 を配置しています。
VBE 内でコピー(ドラッグ&ドロップ)する
まずは、VBE(VBAのエディター)内でコピー(ドラッグ&ドロップ)する方法です。
【注意点】コピー先に同一名のユーザーフォームがある場合エラーでコピーできない
【対応方法】ユーザーフォーム名を変更してからコピーしましょう
コピー後にユーザーフォーム名を元に戻すなどで対応します
【同一プロジェクト内でコピーする方法】
・一時的に別ブックを用意してそこにコピーします
・コピー後名前を変更したあと、元のプロジェクトにコピーします
・一時的に用意した別ブックは不要なので削除します
VBE 内でコピーする動作(動画)
これはすごく簡単ですね(^^)/
エクスポート&インポートを利用する
次は、UserForm モジュールをエクスポートしてからインポートする方法です。
「UserForm1.frm」(テキストファイル)イベントプロシージャなどのコードも、このファイルにテキスト形式で保存されています。
「UserForm1.frx」(バイナリファイル)この中にコントロールの位置などが記録されています。
インポートは、この二つのファイルを使用して行われます。二つ揃っていないとインポートできませんので注意しましょう!
【注意点】同一のユーザーフォーム名がある場合エラーでインポートできません
※標準モジュールをインポートする場合は、すでに同じ名前の標準モジュールが存在していた場合は自動的に名前が変更されてインポートされます。でも、UserFormモジュールの場合は変更してくれないんですね(-_-;)
【対応方法】エクスポートする前に元の名前を変更するか、インポート先の同一名称のユーザーフォームをリネームしておく必要があります
※エクスポート時に保存ファイル名を変更しても UserForm モジュール自体の名前を変更したことにはなりませんので注意が必要です
エクスポート&インポートの動作(動画)
続けて同じ UserFormモジュールをインポートした場合エラーとなる部分までの動作です。
以上2つの方法が一般的なユーザーフォームをコピーする方法です。
手動で UserForm のコピーを作成する
元ブックが無い場合やエクスポートファイルを提供できない場合には、フォーム自身と配置している各コントロールのプロパティー値を使って手動でコピーを作成する必要があります。
もっと複雑なユーザーフォームだった場合、本当に気が遠くなりますね。
下にプロパティウインドウの画像を3つだけ貼っておきます。
【コントロール配置時の注意点】
フレーム内にグループ化するコントロールを配置するなどの場合は、フレームを先に配置しておき、その中に配置していくようにしましょう 。
今回の場合は、フレーム内にラベルを配置しています。
各プロパティー値を手動で把握するのは結構大変な作業なので、VBAを使って取得できるようにしたいと思いました。
まとめ(おわりに)
以上、「ユーザーフォーム」のコピーを作成する方法でした。
まとめと感想など



同じサイズや同じコントロールの配置としたい場合「ユーザーフォーム」のコピーを作成してから改変していくことは意外と多いのではないでしょうか。そんな時のために覚えておきましょうね。



UserFormモジュールも標準モジュールのように同一ファイル名でも番号付きでコピーできればいいんですけどね (^^) 手動でコピーをつくるのは面倒な作業ですね。
・UserForm モジュールのコピーを作成する二つの方法
・手動で UserForm のコピーを作成する方法
★★★ ブログランキング参加中! クリックしてね(^^)/ ★★★
【今後の記事について】
今回の記事はいかがだったでしょうか。皆さまのお役に立てたなら幸いです(^^;
「汎用でだれでも使えて活用できるように考えてる」というポリシーで、記事を継続して書いていきたいと思っています。どうぞよろしくお願いしますm(_ _)m
【検討中の今後の記事内容は・・・・】
・実務に役立つものを提供できるよう常に検討しています(^^ゞ
・その他雑記的に「プチネタなど」もいろいろ考えていきたいと思っています・・・・
・今後の記事にご期待ください(^^)/
過去記事のサンプルファイルをダウンロードできます
今回の記事にはサンプルファイルの登録はありません!
過去の記事で使用したサンプルファイルをダウンロードできるようにページを設置していますので、こちら(このリンク先)からご利用ください




