14
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【VBA】VBAでExcelを開くときに静かに開く。(あらゆる警告やメッセージを表示させない。)

Last updated at Posted at 2019-02-08

はじめに

Excelファイルを大量に自動操作するなかで、
ファイルを開くたびに警告メッセージやマクロが起動したり、データリンクの更新の有無を聞かれたり、と、ファイルを1つ開くたびに警告が表示され、折角自動処理をするのに都度動作がストップする時があります。

書く文

下記の文を使うとても静かに作業できました。

アラートを表示させない

    'Excelの口を封じる。(警告オフ)
    Application.DisplayAlerts = False

    'Excelの動作を封じる(トリガー式の自動マクロを起動させない。)
    Application.EnableEvents = False

    'Excelの画面更新を封じる
    Application.ScreenUpdating = False

    '念のためファイルの存在確認を開く前に実施。
    'ファイルが存在しない場合もエラーで止まるので。
    If Dir("ファイルフルパス") <> "" Then

    'そっと開く。(データリンクの更新をせずにブックを開く。※)
    Workbooks.Open Filename:=FullName, UpdateLinks:=0

    'そっと閉じる。
    Workbooks.Close SaveChanges:= False

データリンクの更新の引数については下記のようになっているようです。

  • 0 外部参照、リモート参照ともに更新されません。
  • 1 外部参照は更新され、リモート参照は更新されません。
  • 2 リモート参照は更新され、外部参照は更新されません。
  • 3 外部参照、リモート参照ともに更新されます。
まずはファイル単体で試してみる。
    Dim ws As Worksheet
    Dim fullname As String
    Fullname = "c:\\filepath\filename.xlsx" 'ファイル
    Application.DisplayAlerts = False
    Application.EnableEvents = False
    Application.ScreenUpdating = False

    If Dir("FullName") <> "" Then
        Set ws = Workbooks.Open(Filename:=FullName, UpdateLinks:=0)

        'ここにファイルごとに実施する処理を書く

        ws.Close SaveChanges:= False
    End If

    Application.ScreenUpdating = True
    Application.EnableEvents = True
    Application.DisplayAlerts = True

おわり
2019/02/09 コードに誤りがあったので修正

14
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?