【エクセル】UserFormを複数実行する方法【VBA】

忘れないようにメモ。

Sub showForm()
  UserForm1.Show (0 - vbModeless)
  UserForm2.Show (0 - vbModeless)
End Sub

こんな感じで引数をつけると、UserForm1とUserForm2がどっちもいじれるようになる!
エクセルの内容もいじれるよ!

でも、引数の渡し方って↓かも;どっちでもいいのかな;?

Sub showForm()
  UserForm1.Show 0-vbModeless
  UserForm2.Show 0-vbModeless
End Sub

ちなみに確認環境はwindowsVistaのエクセル2007。
もしかしたらエクセルのバージョンとか違うと引数とかちょっと違うかもです。。

とりあえずやってる事的には、
VBA」の「userForm」の「show」メソッドに「引数」渡して「モードレス表示」にする
ということらしい。
というわけで「」の中の文字列でぐぐればもっと詳しい情報がたくさんあるはずですw

以下参考にしたサイトなど。。
エクセル大事典 VBAマクロ ユーザフォームより

■UserFormオブジェクトの表示方法

Showメソッドには引数があります。省略すると既定値である1-vbModalが適用され、モーダルでUserFormを表示します。0-vbModelessを指定すると、モードレスでUserFormを表示し、ワークシートの編集などが行えます。

モードレスで表示させた場合、モーダルと違ってコードの実行がShowメソッドのところで中断されずに、継続して実行されてしまいますので注意が必要です。これを回避するには、グローバル変数でUserFormの終了時にTRUEを返すようなBoolean型の変数を作成します。Showメソッド直下にDo〜Loopでループ処理をし、UserForm終了まで処理をウェイトさせることができます。

なるほど!と思いました。

しかし、案外それっぽい単語でググっても目的の内容ってでてこなかったりするんですね。
showの引数とか全然あたまにありませんでした;
使ってるメソッドについてちゃんと理解するのはやはり重要だと再認識しましたです。

ところでmacのエクセルでVBAってどうしたらいじれるんでしょうかね。
ぐぐってみましたが全然さっぱりわかりませんでした;
あ、でも今みたらおーぷんおふぃすにそれっぽいのを発見!w
暇があったらちょっと遊んでみよう。。