アップデート:
すべての詳細を要約して説明した後、オプションの確認に 2 時間ほど費やしましたi
。
準備
まず、VMWare を搭載した Clean Win7 SP1 Ultimate x64 仮想マシンで Office 2010 x86 のクリーン インストールを実行しました (これは、日常のテスト タスクの通常のルーチンであるため、それらの多くを展開しています)。
次に、次の Excel オプションのみを変更しました (つまり、他のすべてはインストール後もそのままです)。
Advanced > General > Ask to update automatic links
チェック済み:
Trust Center > Trust Center Settings... > External Content > Enable All...
(ただし、データ接続に関連するものは、この場合には重要ではない可能性が高いです):
前提条件
C:\
彼の更新された回答の提案に従って、ワークブックを準備して配置しまし@Siddharth Rout
た (便宜上共有されています) : https://www.dropbox.com/s/mv88vyc27eljqaq/Book1withLinkToBook2.xlsx本は入手できません(確かに)。
手動開閉
上記の共有ファイルを開くと (上記の Excel オプションで) 2 つの警告が表示されます - 表示順:
警告#1
クリックした後、Update
私は別のものを手に入れました:
警告 2
したがって、私のテスト環境はOP
's)にかなり似ていると思います)
VBAオープニング
ここで、可能なすべてのオプションを段階的に試して、画像を明確にします。簡単にするために、関連するコード行のみを共有します (コードを含む完全なサンプル ファイルは最後に共有されます)。
1. シンプルな Application.Workbooks.Open
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
当然のことですが、上記の手動で開く場合と同様に、これにより両方の警告が生成されます。
2. Application.DisplayAlerts = False
Application.DisplayAlerts = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.DisplayAlerts = True
このコードはWARNING #1で終了し、どちらのオプションをクリックしても ( Update
/ Don't Update
)、それ以上の警告は生成されません。つまり、 WARNING #2Application.DisplayAlerts = False
が抑制されます。
3. Application.AskToUpdateLinks = False
Application.AskToUpdateLinks = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.AskToUpdateLinks = True
とは反対にDisplayAlerts
、このコードはWARNING #2のみで終了します。つまり、 WARNING #1Application.AskToUpdateLinks = False
を抑制します。
4.ダブルフォールス
Application.AskToUpdateLinks = False
Application.DisplayAlerts = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.DisplayAlerts = True
Application.AskToUpdateLinks = True
どうやら、このコードはBOTH WARNINGSを抑制することになります。
5. UpdateLinks:=False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx", UpdateLinks:=False
最後に、この 1 行のソリューション (元々は によって提案されたもの@brettdj
) は、Double False と同じように機能します:警告は表示されません!
結論
優れたテスト プラクティスと非常に重要な解決済みのケース (ワークブックをサード パーティに送信しているときに、このような問題に毎日直面する可能性がありますが、今は準備ができています) を除いて、さらに 2 つのことを学びました。
- Excel のオプションは、バージョンに関係なく重要です。特に VBA ソリューションの場合は重要です。
- すべての問題には、簡潔で洗練された解決策があります。その証拠をもう1つだけ!)
ソリューションに貢献してくれたすべての人、特に質問を提起した OP に感謝します。私の調査と徹底的に説明されたテスト手順が私だけでなく役立つことを願っています)
上記のコード サンプルを含むサンプル ファイルが共有されています (多くの行は意図的にコメントされています): https://www.dropbox.com/s/9bwu6pn8fcogby7/NoWarningsOpen.xlsm
元の回答(特定のオプションを使用してExcel 2007でテスト済み):
このコードは私にとってはうまく機能します - でワイルドカードを使用して指定されたすべての Excel ファイルをループしますInputFolder
。
Sub WorkbookOpening2007()
Dim InputFolder As String
Dim LoopFileNameExt As String
InputFolder = "D:\DOCUMENTS\" 'Trailing "\" is required!
LoopFileNameExt = Dir(InputFolder & "*.xls?")
Do While LoopFileNameExt <> ""
Application.DisplayAlerts = False
Application.Workbooks.Open (InputFolder & LoopFileNameExt)
Application.DisplayAlerts = True
LoopFileNameExt = Dir
Loop
End Sub
外部リンクが利用できない本で試してみました - 警告はありません。
サンプル ファイル: https://www.dropbox.com/s/9bwu6pn8fcogby7/NoWarningsOpen.xlsm