• ベストアンサー

subプロシージャーは標準モジュールではなくフォームのコードを書く部分

subプロシージャーは標準モジュールではなくフォームのコードを書く部分に書いても問題ないのでしょうか? エクセルにVBAでフォームを挿入し、 「Private Sub UserForm_Initialize()」 などのフォームのモジュールに、 Sub test() MsgBox "あああ" End Sub という標準モジュールに書くべきのsubプロシージャーを書いてもなにもエラーにならないし正常に動きます。 subプロシージャーは標準モジュールではなくフォームのコードを書く部分に書いても問題ないのでしょうか? それともエラーにならなくても標準モジュールに書いた方がいいですか?

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

>Sub test() >MsgBox "あああ" >End Sub 特に、UserForm を動かしている最中に関係しているものではないはずです。 フォームモジュールに置くプロシージャ等は、フォームを動かすためのものを置きます。関係のないものは置きません。標準モジュールは、基本的には、どこからでも呼び出せますから、特に、グローバルで使うことを考えるなら、標準モジュールに置きます。 ただし例外があります。それは、内容をみないとはっきりと言えないけれども、フォームモジュールの負担を考え、あまり長くなるようなコードは、標準モジュールに置きます。

o9i8u7
質問者

お礼

例外もあるんですね。 ありがとうございます。