愚者の経験

「また今度」はほとんどこない

Microsoft Access クラスオブジェクトの利用

[フォーム1]というフォームを作成し、「コード保持」プロパティを「True」にすると
VBEの「Microsoft Access クラスオブジェクト」に「Form_フォーム1」が追加されるのは
皆さんご存知かと思います。

ではこのように記述したことがありますか?

Dim f As Form_フォーム1
大体「存在は知っているが使わない」という認識だと思います。私もそうです、こんなふうに使っている人は見た事無いです。

ではこの「Form_フォーム1」は何につかうのか?
試しに以下を実行します。

Public Sub Test()
    Dim f As Form_フォーム1
 
    Set f = New Form_フォーム1
 
End Sub

何も起こりません。Access側に制御が移ってうっとうしいだけです(笑)。

「変数「f」がすぐ解放されるから意味ないんじゃ?」…ごもっともです。変更してみます。

Private f As Form_フォーム1

Public Sub Test()
 
    Set f = New Form_フォーム1
 
End Sub

やっぱり何も起こりません。これ一体何なのでしょうか?

それでは正解です。何か起こすにはこうします。

Private f As Form_フォーム1

Public Sub Test()
 
    Set f = New Form_フォーム1
    f.Visible = True
End Sub

これで「フォーム1」がオープンして見えます。

ではこうするとどうなるでしょうか?

Private f1 As Form_フォーム1
Private f2 As Form_フォーム1

Public Sub Test()
 
    Set f1 = New Form_フォーム1
    Set f2 = New Form_フォーム1
    f1.Visible = True
    f2.Visible = True
End Sub

どうです?やってみてびっくりです。「フォーム1」が2つ開きます。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。