accApp.UserControl = True を入れてテストしてみました。
※よし実験終了、QAサイトの回答に得意気に書こうとしたら、
質問が解決済みになっていたのは内緒です。
youtu.be
https://youtu.be/qyL7ozYEds0
目次
00:00 やりたいこと
00:30 1.不具合の再現
01:28 解決策 2.UserControl = True
QAサイト
teratail.com
に下記の質問があったので、実験してみました
エクセルVBAでアクセスを開を、プロシージャが終了しても
そのまま開いておきたいのですが、下記ののコードだと閉じてしまいます。
変数の中身がなくなるので閉じてしまうと思うのですが、
プロシージャが終了しても、そのまま開いておく方法はありますでしょうか。
Dim accApp As Access.Application Set accApp = New Access.Application accApp.OpenCurrentDatabase ActiveWorkbook.Path & "\DB_sample.accdb" accApp.Visible = True
まずは、
1.不具合の再現
Sub test() Dim accApp As Access.Application Set accApp = New Access.Application accApp.OpenCurrentDatabase ActiveWorkbook.Path & "\DB_sample.accdb" accApp.Visible = True accApp.DoCmd.OpenForm "t_data" 'おまけでテストフォームを開く MsgBox "無事起動できてよかった、よかった" End Sub
次に解決案をテスト
2.UserControl = True で 勝手にユーザー起動にする
単純に
accApp.UserControl = True
で、
勝手にユーザー起動にする
試してみてください。
Sub test_UserControl_True() Dim accApp As Access.Application Set accApp = New Access.Application accApp.OpenCurrentDatabase ActiveWorkbook.Path & "\DB_sample.accdb" accApp.Visible = True accApp.DoCmd.OpenForm "t_data" 'おまけでテストフォームを開く accApp.UserControl = True '※ユーザー起動、コントロールにする MsgBox "無事起動できてよかった、よかった" End Sub
公式ヘルプ
Application.UserControl プロパティ (Access)
https://learn.microsoft.com/ja-jp/office/vba/api/access.application.usercontrol
learn.microsoft.com
を見て、コードを一行、組み込んでみてください。
accApp.UserControl = True を入れてテストしてみました。
※よし実験終了、QAサイトの回答に得意気に書こうとしたら、
質問が解決済みになっていたのは内緒です。
#ExcelVBA #AccessVBA #デバッグ #Debug
#MSExcel #MSAccess #マクロ #VBA
#UserControl