FORMモジュールを追加したい場合、手動でメニューのフォームモジュールの追加を
選択し、追加します。
プログラム上でFORMモジュールの複製を行いたいのですが、
そのようなことはできるのでしょうか?
ご教授願います。
フォームもクラスですから、複製は可能です。
例えば、Form1とForm2があるとして、
Form1にはボタンが一つあるとします。
Form1のボタンクリックイベントに以下のように記述してください。
Dim f As Form2
Set f = New Form2
f.Show
これでForm1のボタンを押せば、押した数だけForm2が開きます。
が、これでは実用するには問題があるので、
Dim f As Form2
を関数外へ出すなり標準モジュール内で宣言するなり、
御自身で改良してください。
ありがとうございます。
早速やってみます。
ちなみにForm2を用意せずに
Form1のボタンをクリックした際にForm2が
表示されるということはできますでしょうか?
> ちなみにForm2を用意せずに
用意せずというのは、デザインモード(デバッグ環境)で
Form2を定義(追加)しない状態で、
コードでForm2を1から作成して
Form2を表示する、ということですか?
それでしたら、無理なはずです。
つまり、
Dim f As Form2
というのは、Form2型のForm変数を使いますよ、という宣言なので、
プロジェクトにForm1しかない状態で
Dim f As Form2
とは出来ませんし、
仮に
Dim f As Form
としたとて、
Set f As New Form
とは出来ないはずですから。
Dim f As New Form
も同じく出来ません。
#VB.NETなら出来ますが
有難う御座いました。
VB.NETからはできるんですね。
VB6でもやろうと思えばできなくもないですが・・・。
[方法1]Form1のインスタンスを作って、Form2のフリをする。(難易度低)
[方法2]CreateWindowで全部自前で作る。(難易度中)
ツイート | ![]() |