View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Jim Rech[_2_] Jim Rech[_2_] is offline
external usenet poster
 
Posts: 533
Default ChDir and ChDrive

The Windows API function SetCurrentDirectoryA is preferable for two reasons.
It works with UNC paths and it handles both ChDrive abd ChDir functions.

Add this declaration to the top of the module:

Declare Function SetCurrentDirectoryA Lib "KERNEL32" (ByVal lpPathName As
String) As Long

and then anywhere in it you can use it like this:

SetCurrentDirectoryA "\\Server\Share"

or

SetCurrentDirectoryA "C:\Folder\Subfolder"

--
Jim
"Conan Kelly" wrote in message
...
Hello all,

I have a some code that I use to alter a handful of personal files on a
local drive.

I'm trying to set this code up to store the current directory, change to a
specific folder on a local drive, then change the current directory back
to the one that was current before the code ran.

I just figured out that I will have to use both ChDir and ChDrive in order
to do this, and then use both to revert back to original directory before
running the code. No big deal, IF THE NETWORK SHARE IS MAPPED TO A DRIVE
LETTER!!! Most of the network locations that I work in are mapped to
drive letters. But on the rare occasion, I will be working in the network
location directly, ie: \\Server\Share.

It looks like changing CurDir from a network location to a local directory
is no big deal. But I'm having a hard time trying to figure out how to
change from a local to a network location.

If my original directory is...

\\Server\Share

...and I want to go to...

C:\Folder\Subfolder

...then my code would look something like this...

'CurDir would be "\\Server\Share" at this point.
pstrCurrFolder = CurDir
'ChDrive "C" 'it appears this line is not neccesary when going
from network to local
ChDir "C:\Folder\Subfolder"

But it doesn't look like I can revert back to my network location, after
all the processing, if it is not mapped to a drive letter.

ChDir pstrCurrFolder 'only works if pstrCurrFolder is another
location on the current drive.
ChDrive "\\Server" 'No workie!!!

Does anyone know of a way to accomplish what I'm trying to do?

Thanks for any help anyone can provide,

Conan Kelly



---------------------------
"Smokin' weed kills your brain cells. Drinkin' only screws up your
liver...ya got 2 a those."
- Earl Hickey (NBC's "My Name is Earl")