お久しぶりです。備忘です。
今回はネットワークドライブ(サーバ)に存在するExcelファイルを開こうとした時
(ファイルをダブルクリックした時)に、
メッセージを表示してExcelファイルを開かないようにする方法を紹介します。
参照設定は使用しないよう構文を作成してみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Private Sub Workbook_Open() Dim Network As Object Dim Drives As Object Dim i As Integer Set Network = CreateObject("WScript.Network") Set Drives = Network.EnumNetworkDrives For i = 0 To Drives.Length - 1 Step 2 ' コレクションの奇数番目にネットワークパス If InStr(ThisWorkbook.Path, Drives.Item(i + 1)) > 0 Then MsgBox "ネットワーク上で開かないでください。", vbCritical ThisWorkbook.Close False End If Next End Sub |
Drives.Itemには2つの情報(0 or 1)が入ります。そのうち、サーバのパスは2番目(i=1)に入ります。
複数のネットワークサーバがある場合は1番目(Drives.Item(1))、
3番目(Drives.Item(3))、5番目(Drives.Item(5))・・・ にサーバのパスが入っていきます。
■実行結果
今回はここまで。
---コメント---