
いつもお世話になっております。
FSO.getAbsolutePathName でフルパスを取得できますが、例えばDesktop上にあるファイルが、Documentsで取得されます。下記をそのままBOOK1のまま保存するとDesktopで取得していましたが、名前を変更すると、どこへ持っていってもDocumentsになりました。
そのような現象ありませんか?
Sub test()
Dim FSO As Object
Dim my_filename As String
Dim my_fullname As String
Dim my_Dirpath As String
Set FSO = CreateObject("Scripting.FileSystemObject")
my_filename = FSO.GetFileName(ActiveWorkbook.Name) 'ブック名と拡張子
my_fullname = FSO.getAbsolutePathName(my_filename) 'このブックのフルパス
my_Dirpath = ThisWorkbook.Path 'このブックのフォルダパス
Debug.Print my_filename
Debug.Print my_fullname
Debug.Print my_Dirpath
End Sub

No.1ベストアンサー
- 回答日時:
>下記をそのままBOOK1のまま保存するとDesktopで取得していましたが、名前を変更すると、どこへ持っていってもDocumentsになりました。
名前を変更したことが原因ではありません。
excelを起動したときの作業ディレクトリがDocumentsだからです。
getAbsolutePathNameは、作業ディレクトリを付加して、完全パス名を作り上げます。
現在の作業ディレクトリを変えれば、そのディレクトリで完全パス名を作り上げます。
Documents以外の個所に以下のマクロを持つexcelファイルを保存してください。(Documentsに保存して他へ移動してもOKです)
移動先のexcelを開いてこのマクロを呼び出してください。
このexcelが存在するディレクトリに作業ディレクトリを変更してから再度、FSO.getAbsolutePathNameを呼び出しています。
このファイル(Book1.xlsm)の完全パスが、D:\goo\data2\Book1.xlsm とすると
2回目の
my_fullname = FSO.getAbsolutePathName(my_filename) は、D:\goo\data2\Book1.xlsm になります。
Sub test()
Dim FSO As Object
Dim my_filename As String
Dim my_fullname As String
Dim my_Dirpath As String
Set FSO = CreateObject("Scripting.FileSystemObject")
Debug.Print "current dir=" & CurDir
my_filename = FSO.GetFileName(ActiveWorkbook.Name) 'ブック名と拡張子
my_fullname = FSO.getAbsolutePathName(my_filename) 'このブックのフルパス
my_Dirpath = ThisWorkbook.Path 'このブックのフォルダパス
Debug.Print my_filename
Debug.Print my_fullname
Debug.Print my_Dirpath
ChDrive (ThisWorkbook.Path)
ChDir (ThisWorkbook.Path)
Debug.Print "new current dir=" & CurDir
my_filename = FSO.GetFileName(ActiveWorkbook.Name) 'ブック名と拡張子
my_fullname = FSO.getAbsolutePathName(my_filename) 'このブックのフルパス
my_Dirpath = ThisWorkbook.Path 'このブックのフォルダパス
Debug.Print "new filename=" & my_filename
Debug.Print "new fullname=" & my_fullname
Debug.Print "new dirpath=" & my_Dirpath
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フルパスから最後のディレクト...
-
どんなプログラムを書いても指...
-
FTPでputすると空ファイルが出...
-
windows.hがincludeされない
-
絶対パスの絶対て英語で何でし...
-
Excel2013 FSO.getAbsolutePath...
-
C言語を用いたファイルの一括削...
-
エクセルVBAで相対パスでファイ...
-
fopenで別ディレクトリにファイ...
-
ファイルやディレクトリの存在...
-
ネットワーク上のコンピュータ...
-
MATLABのsaveでファイル名を試...
-
フォルダ内の全ファイルの容量
-
AfxLoadLibrary関数で、DLLのハ...
-
ExcelVBAでカレントディレクト...
-
EXCELでダイアログボックスを開...
-
「UNCパスはサポートされません...
-
VBでのAPI
-
vba ActiveSheet.pasteを使った...
-
C言語初心者の質問失礼します。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
どんなプログラムを書いても指...
-
FTPでputすると空ファイルが出...
-
フルパスから最後のディレクト...
-
fopenで別ディレクトリにファイ...
-
「UNCパスはサポートされません...
-
webアプリケーションでの画像フ...
-
絶対パスの絶対て英語で何でし...
-
ExcelVBAでカレントディレクト...
-
windows.hがincludeされない
-
ExcelVBA サーバーの(共有フォ...
-
ファイルやディレクトリの存在...
-
セルに入力されたパスでフォル...
-
C言語を用いたファイルの一括削...
-
ネットワーク上のコンピュータ...
-
Ubuntu テキストファイルをどこ...
-
GIFファイルを一括してWORDに挿...
-
GetPrivateProfileStringでini...
-
Excelマクロからのバイナリデー...
-
FindFirstFileについて
-
圧縮(Zip)について
おすすめ情報