いつもお世話になっております。
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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
fopenで別ディレクトリにファイ...
-
フルパスから最後のディレクト...
-
ファイルのパスを動的に取得
-
絶対パスの絶対て英語で何でし...
-
どんなプログラムを書いても指...
-
ThisWorkbook.Pathについて
-
webアプリケーションでの画像フ...
-
マイクラでPythonのプログラミ...
-
windows.hがincludeされない
-
バッファとは何ですか
-
C言語初心者の質問失礼します。
-
ASP .NETでファイル選択ダイア...
-
= (イコール)で始まるセルの値...
-
グローバル変数のよくない使い...
-
csvファイルを開かずに文字を検...
-
c言語 2つのファイルを行ご...
-
分割コンパイルの#defineについて
-
最近使ったファイルからファイ...
-
コンパイルエラー「include フ...
-
VisualStudioのプロジェクトリ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
どんなプログラムを書いても指...
-
フルパスから最後のディレクト...
-
FTPでputすると空ファイルが出...
-
「UNCパスはサポートされません...
-
絶対パスの絶対て英語で何でし...
-
windows.hがincludeされない
-
ExcelVBAでカレントディレクト...
-
ファイルやディレクトリの存在...
-
セルに入力されたパスでフォル...
-
C言語を用いたファイルの一括削...
-
fopenで別ディレクトリにファイ...
-
GetPrivateProfileStringでini...
-
ネットワーク上のコンピュータ...
-
マイクラでPythonのプログラミ...
-
ファイルダイアログのカレント...
-
webアプリケーションでの画像フ...
-
ExcelVBA サーバーの(共有フォ...
-
圧縮(Zip)について
-
pythonでの日本語操作
-
エクセルVBAで相対パスでファイ...
おすすめ情報