サーバーのファイルを開くためのパスの指定方法は?

Question 051k 拙著「組み方講座」 Previous Next
95ページ [1-1-14図] ◆ 環境・・ Excel 2000 & Windows XP
詳細は こちら
お世話になっております。 本を参考に、リストボックスを利用して索引メニューを作っております。

ファイルがローカルではなく、ファイルサーバーにあるのですが、上手く呼び出せません。
ドライブの欄に 「\\ファイルサーバー名」 と入れてもダメですよね?
ファイルサーバーにあるファイルを呼出すには、どのようにしたらよいのでしょう。
ご指導いただけませんでしょうか。 よろしくお願いいたします。
Answer   Copyright (C) 2005.3.7 永井善王
拙著「ExcelVBAマクロ組み方講座」をご購読、ありがとうございます。

[1-1-14図]のマクロの中の関係部分は下記のとおりで、ドライブ文字として上図のシートのB列セルの値を変数に取得して、以後のコードで使用しています。
Private Sub 管理表シートから値を取り出す()
    ドライブ = Worksheets("管理表").Cells(行, 2)
    親フォルダ = Worksheets("管理表").Cells(行, 3)
    子フォルダ = Worksheets("管理表").Cells(行, 4)
    ファイル名 = Worksheets("管理表").Cells(行, 5)
    拡張子 = Worksheets("管理表").Cells(行, 6)
End Sub

Private Sub 選択されたファイルを開く()
    ChDrive ドライブ
    パス = ドライブ & ":\" & 親フォルダ & "\" & 子フォルダ
    ChDir パス
    Workbooks.Open Filename:=ファイル名 & ".xls", ReadOnly:=True
End Sub
よって、サーバーに対して 「ネットワークドライブの割り当て」 がしてある場合は、ドライブ文字として指定した文字を B列セルに入力しておけば、マクロを修正する必要はありません。

ネットワークドライブの割り当てがしてない場合の対応策
この場合は上記の方法によることができませんから、下側のマクロ (選択されたファイルを開く) の一部を下記のとおり修正すれば可能になると思います。
 (1) 2行目 …
ChDrive ドライブ をコメントアウトするか削除する
 (2) 3行目 …
パス = "\\" & 親フォルダ & "\" & 子フォルダ に修正する
お試しください。

 

Excel VBA Macro