Excel VBAで外部のExcelファイルを開く処理を実装すると、画面いっぱいに対象ファイルが表示されて邪魔になることがあります。
今回は、ファイルをバックグラウンドで開いて画面更新を抑制する方法を学びましたので、その手順とコードをご紹介いたします。
実現したいこと
- 外部のExcelファイルをユーザーに見せずに開きたい
- 自動処理用に一時的に開くファイルなどを、バックグラウンドで静かに処理したい
方法:ScreenUpdating プロパティで画面描画を抑制する
VBAには Application.ScreenUpdating というプロパティがあり、これを False に設定することで、処理中の画面のちらつきや表示更新を抑えることができます。
この機能を使うことで、外部ファイルをユーザーに表示させることなく開くことが可能になります。
使用したVBAコード
以下が、外部のExcelファイルをバックグラウンドで開くための基本コードです。
Sub OpenWorkbookSilently()
Dim ExternalWorkbook As Workbook
' 画面の更新をオフにする
Application.ScreenUpdating = False
' 外部のExcelファイルを開く
Set ExternalWorkbook = Workbooks.Open("C:\Users\s_mori\OneDrive - MACCS.cloud\デスクトップ\ショートカット\01_SKY関係\SKY_ED.xlsx")
' 必要な処理(読み取り、コピーなど)をここで行う
' 画面の更新をオンに戻す
Application.ScreenUpdating = True
End Sub
コードのポイント
Application.ScreenUpdating = False
ファイルを開く前に画面更新を停止します。これにより、Excel画面にファイルが表示されることはありません。Workbooks.Open(...)
外部のExcelファイルを通常通り開きます。VBA側では参照できるようになります。Application.ScreenUpdating = True
処理が終わった後に画面更新を再開することで、元の状態に戻します。
注意点
ScreenUpdatingは表示制御であり、完全に非表示で開いているわけではありません。一部環境ではウィンドウの切り替えが見えることもあります。- 処理中にエラーが発生した場合、
ScreenUpdating = Trueが呼ばれず、画面が更新されなくなることがあります。
その場合はOn Error処理を加えておくと安心です。
まとめ
外部のExcelファイルをバックグラウンドで開くには、Application.ScreenUpdating を使うのが効果的です。
- 画面更新を停止してからファイルを開く
- 処理後に画面更新を再開
- VBA処理をユーザーに意識させずに実行できる
定型処理やバッチ処理など、自動化用途において非常に便利なテクニックです。
本記事が少しでも参考になれば幸いです。
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
