次の方法で共有

vbaでの、activeworkbookの質問

Anonymous
2022-02-08T01:19:22+00:00

activeworkbookは、最前面のworkbookと認識していますが

動きについての質問です

test.xlsm test1.xlsx test2.xlsx を用意して、マクロはtest.xlsmに入れています

test.xlsmには、userform1 userform2 userrorm3 があり

それぞれ、CommandButton1 と label1 があります

そして、userform1 をアクティブにします

-------userform1-----------------

Private Sub CommandButton1_Click()

' Workbooks.Open Filename:="C:\Users\admin\Desktop\複数のエクセルファイルの実験\test1.xlsx"

Load UserForm2

UserForm2.Show

End Sub

Private Sub UserForm_Initialize()

Workbooks.Open Filename:="C:\Users\admin\Desktop\複数のエクセルファイルの実験\test1.xlsx"

Label1.Caption = ActiveWorkbook.Name

End Sub

-------userform2-----------------

Private Sub CommandButton1_Click()

' Workbooks.Open Filename:="C:\Users\admin\Desktop\複数のエクセルファイルの実験\test2.xlsx"

Load UserForm2

UserForm2.Show

End Sub

Private Sub UserForm_Initialize()

Workbooks.Open Filename:="C:\Users\admin\Desktop\複数のエクセルファイルの実験\test2.xlsx"

Label1.Caption = ActiveWorkbook.Name

End Sub

userform1の Initialize のところで tes1.xlsx のファイルをopen してactiveworkbook になっているし

label1にactivewookbook.name を表示するとtest1.xlsx が表示されます

しかし、実際に最前面に表示されているのは、test.xlsm になっています

CommandButton1 をクリックしてuserform2 を表示させると

 userform2でInitializeのところでtest2.xlsxをopenさせてactiveworkbookはtest2.xlsxになるのですが

ここで最前面に表示されるのはtest1.xlsxになります

結果として、activeworkbook.name で表示されるものと、実際に表示されているものが

1回分反映が遅れている

いろいろと実験してみました

 上にあるように注釈文としてあるのですが、Initializeのところでopenするのではなく

CommandButton1 のクリックするところでopen した場合は、初めてopen するときと

2回目にopen したときの結果が違います

このactiveworkbook の返される値と実際の画面の結果に違いが発生するのは

何か解消する方法があるのでしょうか?

Microsoft 365 と Office | Excel | ビジネス向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

1 件の回答

並べ替え方法: 最も役に立つ
  1. Makapu 92,110 評価のポイント ボランティア モデレーター
    2022-02-08T20:46:00+00:00

    こんにちは。

    VBA に関するご質問ですと、VBA 専用のフォーラムがある開発者向けの<Msdnフォーラム>の方が情報が集まり易いと思います。

    Msdn フォーラム(VBA)

    よろしければそちらにも投稿して情報を集めてみて下さいね。

    ※現在Msdnフォーラムは初回プロファイルを作成してから質問が出来るまで1日待つ制限がありますが、待機後に質問は可能となりますのでお待ちいただければと思います。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません