- ベストアンサー
エクセルでカレントドライブの値を知る方法を教えてください
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:\出欠関係」が上手く利用できません。 利用する端末の数が多いためドライブ名を変えるのではなく、マクロで乗り切りたいと思っております。フォルダの名称や位置は固定です。 是非アドバイスをお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
当エクセルファイルのオープン時に下記処理する。 ↓ 全接続ドライブ中から 「出欠関係」というフォルダーを検索しする。 (発見したできたら該当ドライブ名をグローバル変数に格納して セル式にグローバル変数を戻り値とする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
その他の回答 (2)
- nicotinism
- ベストアンサー率70% (1019/1452)
状況が良く分かりませんが F:・・・ の所をUNC名にしておけば出来るかも? 例 \\コンピュータ名\出欠関係\
- merlionXX
- ベストアンサー率48% (1930/4007)
マクロなら ThisWorkbook.Path で求められませんか?
補足
うまくいきません。 関係ファイルはすべて「出欠関係」フォルダにおいてあり、F:にあります。 しかし表示されるには、C:\Documents and Settings\vaio\My Documents\と表示されます curdir関数などもやって見ましたが、結果は同じでした。
補足
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)" 上記のように記述したのですが、上手く行きませんでした。 記述が間違っていないか、見ていただけませんか。 よろしくお願いいたします。