接頭辞:私のコードでは、内部にDBがあり、組織全体には見えないような情報が入ったDBがあります。私は外部のブックを開き、PivotTable
からすべてのデータを正常に取得することができます。2番目のワークブック(同じインスタンス)を開くときに画面がちらつくのを防ぎます。
問題:コードが実行されると、画面が約0.5秒間ちらつき、他のブックが表示されます。
ゴール:ワークブックの切り替え時に画面がちらつくことがありません。
マイコード(関連セクション):
Option Explicit
Public Sub GetBudgetData_fromPivotTable(Budget_ShtName As String, Budget_PvtName As String)
Dim BudgetWB As Workbook
Dim PvtTbl As PivotTable
Dim pvtFld As PivotField
Dim strPvtFld As String
Dim prjName As String
' ****** This is the Section I am trying to prevent from the screen to flicker ******
Application.ScreenUpdating = False
Application.DisplayAlerts = False
' read budget file parameters
Set BudgetWB = Workbooks.Open(BudgetFile_Folder & BudgetFile_wbName)
BudgetWB.Windows(1).Visible = False
OriginalWB.Activate ' <-- this is the original workbook that is calling the routine
Set PvtTbl = BudgetWB.Worksheets(Budget_ShtName).PivotTables(Budget_PvtName)
' a lot of un-relevant code line
BudgetWB.Close (False) ' close budget file
OriginalWB.Activate
' restore settings
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
ちょっとした回避策のアイデア - 大きなモードレスのユーザーフォームをアクティブにする方法はありますか?その後、ちらつきはバックグラウンドにとどまります。 – Vityata
また別の考え方 - BudgetWBを開いている間にExcelアプリケーション全体を見えないように設定する - 'application.Visible = false'を開き、それを元に戻してください。 – Vityata
@Vityata私は2番目のExcelインスタンスを開こうとしません –