更新:
すべての詳細を要約して議論した後、私はオプションのチェックに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
)これまでのところ、私たちは最終的に
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
このコードは、警告#1で終わり、どちらのオプション(Update
/ Don't Update
)をクリックしても、警告は生成Application.DisplayAlerts = False
されません。つまり、警告#2が抑制されます。
3. Application.AskToUpdateLinks = False
Application.AskToUpdateLinks = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.AskToUpdateLinks = True
の反対でDisplayAlerts
、このコードはWARNING#2のみで終了します。つまりApplication.AskToUpdateLinks = False
、WARNING#1を抑制します。
4.二重誤り
Application.AskToUpdateLinks = False
Application.DisplayAlerts = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.DisplayAlerts = True
Application.AskToUpdateLinks = True
どうやら、このコードは両方の警告を抑制することになります。
5. UpdateLinks:= False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx", UpdateLinks:=False
最後に、この1行のソリューション(元はによって提案されました@brettdj
)は、Double Falseと同じように機能します。警告は表示されません!
結論
適切なテストプラクティスと非常に重要な解決済みのケース(サードパーティにワークブックを送信しているときに毎日このような問題に直面する可能性があり、準備ができている)を除いて、さらに2つのことを学びます。
- バージョンに関係なく、特にVBAソリューションの場合、Excelオプションは重要です。
- すべてのトラブルには、簡潔で洗練された解決策があります。そのためのもう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