• ベストアンサー

エクセルでカレントドライブの値を知る方法を教えてください

Excel(2003)で開いているファイルのカレントドライブの値を知る方法を教えてください。 現在、下記のようなマクロを実行しています。 ActiveSheet.Range("c2") = "=SUMPRODUCT(('F:\出欠関係\" & today & "\[1nen.xls]11'!l4:l45=1)*1)" ActiveSheet.Range("d2") = "=SUMPRODUCT(('F:\出欠関係\" & today & "\[1nen.xls]12'!l4:l45=1)*1)"    ・    ・    ・    ・    ・ 利用し始めた当初はよかったのですが、複数のコンピュータから利用することになり共有フォルダに割り当てされているドライブ名が異なっており、マクロの中の「F:\出欠関係」が上手く利用できません。 利用する端末の数が多いためドライブ名を変えるのではなく、マクロで乗り切りたいと思っております。フォルダの名称や位置は固定です。 是非アドバイスをお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Hardking
  • ベストアンサー率45% (73/160)
回答No.2

当エクセルファイルのオープン時に下記処理する。 ↓ 全接続ドライブ中から 「出欠関係」というフォルダーを検索しする。 (発見したできたら該当ドライブ名をグローバル変数に格納して  セル式にグローバル変数を戻り値とするFunctionを記述) Dim FSO, Drv, buf As String Set FSO = CreateObject("Scripting.FileSystemObject") For Each Drv In FSO.Drives DirectoryExist = Dir(Drv.DriveLetter & ":\出欠関係", vbDirectory) Next Drv

demiguru
質問者

補足

Sub auto_open() Dim FSO, Drv, buf As String Set FSO = CreateObject("Scripting.FileSystemObject") For Each Drv In FSO.Drives DirectoryExist = Dir(Drv.DriveLetter & ":\出欠関係", vbDirectory) Next Drv Dim wStr As String today = Format(Now(), "m月d日") ActiveSheet.Range("c2") = "=SUMPRODUCT(('fso\" & today & "\[1nen.xls]11'!l4:l45=1)*1)" 上記のように記述したのですが、上手く行きませんでした。 記述が間違っていないか、見ていただけませんか。 よろしくお願いいたします。

その他の回答 (2)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

状況が良く分かりませんが F:・・・ の所をUNC名にしておけば出来るかも? 例 \\コンピュータ名\出欠関係\

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

マクロなら ThisWorkbook.Path で求められませんか?

demiguru
質問者

補足

うまくいきません。 関係ファイルはすべて「出欠関係」フォルダにおいてあり、F:にあります。 しかし表示されるには、C:\Documents and Settings\vaio\My Documents\と表示されます curdir関数などもやって見ましたが、結果は同じでした。

関連するQ&A

専門家に質問してみよう