画面のちらつきを止める方法
- 画面のちらつきを止めるには、VBAのプロシージャーを使用する方法があります。
- 具体的には、AccessのVBAプロシージャで、DoCmd.SetWarnings Falseを使用してアクセスの警告メッセージを非表示にすることで、画面のちらつきを抑えることができます。
- また、Application.ScreenUpdatingをFalseに設定することで、エクセルの画面の更新を止めることもできます。
- ベストアンサー
画面のちらつきをやめるにはどうすればいいでしょうか
アクセスです。 Sub test() Set objAcc = CreateObject("Access.Application") objAcc.OpenCurrentDatabase "C:\test.accdb", False objAcc.Run "プロシージャー" objAcc.Quit Set objAcc = Nothing End Sub ------------------------- 上記のプロシージャーを実行して、他のファイルのプロシージャーを実行しているのですが 毎回ファイルが立ち上がってしまいます。 画面のちらつきをやめるにはどうすればいいでしょうか? DoCmd.SetWarnings False と DoCmd.SetWarnings True を入れてみましたが、無意味でした。 objAcc.OpenCurrentDatabase でアクセスが起動し、 objAcc.Quit で閉じます。 エクセルで例えるのなら、 Application.ScreenUpdating = False みたいなことがやりたいです。
- ZUJQBMYGELLXE
- お礼率86% (31/36)
- オフィス系ソフト
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>objAcc.OpenCurrentDatabase "C:\test.accdb", False OSが不明ですがWin7などではCドライブ直下はOSの聖域になっているので 当方では実行時エラー40351、アプリケーション定義またはオブジェクト定義のエラーになりました。 保存フォルダを適当に変えて test.accdb に Sub Beepuu() beep end sub で objAcc.Run "beepuu" で呼び出すと音で確認できましたよん。 ちらつくこともありませぬ。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17068)
http://okwave.jp/qa/q2229389.html http://macoto.blog.so-net.ne.jp/2009-03-10 のような質問と回答があります。 >Application.Echo False で停止 >Application.Echo True で描画です やってみてどうでしょうか。
お礼
ご回答ありがとうございます。
関連するQ&A
- objAcc.Visible = False 可視
アクセスからアクセスファイルを開いています。 Set objAcc = CreateObject("Access.Application") objAcc.OpenCurrentDatabase "C:\あああ.accdb", False objAcc.Run "test1" objAcc.Quit Set objAcc = Nothing の様にして、VBAでアクセスファイルを開いてるのですが この時、起動するファイルの可視をFalseにすることは可能でしょうか? Set objAcc = CreateObject("Access.Application") objAcc.Visible = False objAcc.OpenCurrentDatabase "C:\あああ.accdb", False としても、ファイルが開いてるのが見えてしまいます。
- 締切済み
- オフィス系ソフト
- エクセルからアクセスのプロシージャーを実行する
エクセルからアクセスのプロシージャーを実行する方法を教えてください。 アクセスファイル名→ファイル1.accdb プロシージャー名→test1 なのですが、 エクセルで Sub ACCESSのプロシージャーを実行する() Dim OBJ As Object Set OBJ = GetObject("C:\Users\Desktop\ファイル1.accdb") OBJ.Application.Run OBJ.Name & "!test1" Set OBJ = Nothing End Sub としたら、 実行時エラー 2517 ’Microsoft Access!test1’プロシージャーが見つかりません。 になります。 test1は、アクセスの標準モジュール内に記載しています。 モジュール名も指定しないとだめなのでしょうか? その場合のコードの書き方がわからないので教授ください。 該当のアクセスファイルは既に起動しているときもあるし、してない時もあります。
- ベストアンサー
- Excel(エクセル)
- アクセスからアクセスを立ち上げたいのですが
オフィス2007です。 アクセスからアクセスを立ち上げたいのですが、うまくいきません。 test1.accdbにフォームとコマンドボタンを設置して、 Private Sub コマンド1_Click() Dim acApp As Object Set acApp = CreateObject("Access.Application") acApp.OpenCurrentDatabase C:\test2.accdb" acApp.Visible = True End Sub を実行したのですが、アクセスのアプリケーションが一瞬だけ開いて、閉じてしまいます。 「 acApp.Visible = True」の部分に、ブレークポイントを設定して、ステップインしてみたところ、 acApp.Visible = Trueでアクセスのアプリケーションが立ち上がり、test2.accdbが表示されますが 「End Sub」で閉じてしまいます。 ずっと開き続けるにはどうすればいいでしょうか?
- ベストアンサー
- オフィス系ソフト
- 既にファイルが開いているのなら開かない(二重起動防
アクセス 既にファイルが開いているのなら開かない(二重起動防止)とするには? 自分なりにコードを考えてみたのですが Sub Sample() Dim acApp As Access.Application Set acApp = CreateObject("Access.Application") acApp.OpenCurrentDatabase "C:\test.accdb" '該当のファイルが開いてないのなら、 If acApp.ReadOnly = False Then acApp.Visible = True acApp.UserControl = True End If End Sub これだと、.ReadOnlyがコンパイルエラーになります。 どうやらReadOnlyはアクセスには用意されてない用語のようです。 このような場合どうすればいいでしょう?
- ベストアンサー
- オフィス系ソフト
- access全画面表示されない
VBからacesssを開くと全画面表示されません。 しかし、フォルダをダブルクリックして開いたり、 空のaccessアプリケーションを立ち上げて、「ファイルを開く」で開くと、全画面表示されます。 【VB】-------------------------------------------- Sub AccOpen() Dim AccApp As Access.Application Dim MyPath As String MyPath = "○○.accdb" AccApp = CreateObject("Access.Application") AccApp.OpenCurrentDatabase(MyPath) AccApp.Visible = True AccApp.UserControl = True End Sub -------------------------------------------------- 【access】---------------------------------------- Private Sub Form_Load() DoCmd.RunCommand acCmdAppMaximize 'アプリケーションのサイズを最大化する Vbから開くと最大化されない。 End Sub -------------------------------------------------- としています。 アクセス2007、VB2010です。 VBからだと DoCmd.RunCommand acCmdAppMaximizeが無視される理由を教えてください。
- ベストアンサー
- Visual Basic
- VBからaccess UserControl
vb.netから 【VB】-------------------------------------------- Sub AccOpen() Dim AccApp As Access.Application Dim MyPath As String MyPath = "○○.accdb" AccApp = CreateObject("Access.Application") AccApp.OpenCurrentDatabase(MyPath) AccApp.Visible = True AccApp.UserControl = True End Sub -------------------------------------------------- でアクセスのファイルを開いているのですが、 アクセスの標準モジュールで 【access】-------------------------------------------- Sub test() MsgBox "The user started Access: " & Application.UserControl End Sub ---------------------------------------------------- を実行すると、Trueが返ってくるのですが、正しくはFalseなのではないでしょうか? アクセスのヘルプをみると、 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ True 現在のアプリケーションはユーザーによって起動されました。 False 現在のアプリケーションは、オートメーションを使って他のアプリケーションによって起動されました。 と書かれています。 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ AccOpenはvbで実行しているので、 「オートメーションを使って他のアプリケーションによって起動されました。」 に該当するのではないでしょうか?
- ベストアンサー
- Visual Basic
- もし該当のアクセスファイルが開いているのなら開かな
エクセルからアクセスを開く方法を教えてください。 そして、 「もし該当のアクセスファイルが開いているのなら開かない」 と言う条件も付け加えたいです。 Sub test1() Dim strAcName As String Dim accApp As Object strAcName = "D:\ アクセスファイル名.mdb " 「GetObject」「CreateObject」どちらにしても結果は同じ? Set accApp = GetObject(strAcName) Set accApp = CreateObject(strAcName) 既にAccessファイルを開いている場合は、Visible = Trueにしたらエラーになる。 If Not accApp Is Nothing Then accApp.Visible = True accApp.OpenCurrentDatabase (strAcName) End If Set accApp = Nothing End Sub だと、 OpenCurrentDatabase の部分で、実行時エラー7867 既にこのデータベースは開いています。 になります。 だからってこの部分をコメントアウトすると 前回と同じように Set accApp = Nothingを通り越すと 折角開いたアクセスファイルが閉じてしまいます。 エクセルからアクセスを開く時にもハイパーリンクで Sub test2() Dim strAcName As String strAcName = "D:\ アクセスファイル名.mdb " ThisWorkbook.FollowHyperlink strAcName End Sub で開けたのですが、 「もし該当のアクセスファイルが開いているのなら開かない」 が出来ないので、 「GetObject」か「CreateObject」を 使って開くのかな?と思っています。
- ベストアンサー
- Excel(エクセル)
- test1からの実行かどうかを取得する方法は
test1のモジュールには、 ------------------------- Set acApp = New Access.Application With acApp .OpenCurrentDatabase "C:\test2.accdb" .Visible = True .Application.Run "プロシージャ名" ------------------------- のような感じで test1からtest2の"プロシージャ名"を実行するVBAコードを書いたのですが この時に、 test2のファイルからは、test1からの実行かどうかを取得する方法はありますか? Debug.Print Application.UserControl で自分で起動したか、 オートメーションを使って他のアプリケーションによって起動されたかを取得できるとの事ですが 「オートメーションを使って他のアプリケーションによって起動された」時に どのファイルから起動されたかを取得したいです。
- ベストアンサー
- オフィス系ソフト
- アクセス 他ファイルのプロシージャーを実行したい
同じローカルに入っている、 アクセスファイル1.accdbから、アクセスファイル2.accdbの標準モジュールのプロシージャーを実行することは可能ですか? アクセスファイル1.accdbで、アクセスファイル2.accdbのプロシージャーを使いたいです。 アクセスファイル1.accdbにアクセスファイル2.accdbのプロシージャーをコピーすればいいのですが 長いので省略したいのです。 アクセス2010です。
- 締切済み
- その他MS Office製品
- ファイルごしでプロシージャーを実行したい
アクセスで PW1.accdb PW2.accdb の二つのファイルがあり、どちらも起動してるのですが PW1からPW2のtestというプロシージャーをPW1内で実行することは可能ですか? 参照設定などをすれば可能でしょうか? それともPW2のプロシージャーを使いたいのならば、 PW2のtestというプロシージャーをコピーして、PW1.accdbのモジュールにはり付けるべきでしょうか?
- ベストアンサー
- オフィス系ソフト
お礼
ご回答ありがとうございます。