[[20210810110245]] 『MacにおけるThisWorkbook.Path』(り) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『MacにおけるThisWorkbook.Path』(り)

こんにちは、VBAについて質問です。
環境:Excel for mac 365 version16.51
macOS Mojave 10.14.6

現在DropBox上にテンプレート.xltmがあり、その中にThisWorkbook.Pathを使ったPDF保存のマクロ、他のブックを開くマクロがあります。

僕のmacでは問題なく動作したのですが、他人のmacで動かすと「ThisWorkbook.Path」の指定先が
ユーザー名>ライブラリ>Containers>com.microsoft.excel>Data>Documents になっています。
(PDF出力マクロで確認済み)

このテンプレートを作った僕のmacだけ問題なく動作するのですが、
(=PDF出力先がDropBox上のテンプレートと同じフォルダになっている)
他のmacだと上記のパスを指定してしまいます。

もちろん上記のパスのフォルダにテンプレート.xltmはありません。

どうにかして他人のmacも「ThisWorkbook.Path」をテンプレートと同じフォルダにしたいのですが、
何が原因なのでしょうか?

< 使用 Excel:Office365、使用 OS:MacOSX >


DropBoxの仕様も分かっていませんし、Macでも
365でもないですが、結果から想像してみました。
参考程度でお願いします。

WindowsだとExcelブックを開くとそのブックの隠しファイルが同じパス上に現れます。
DropBox上のファイルを開くとその隠しファイルが当該のパス上にあるのではないでしょうか。
DropBoxの仕様のような気がします。

(tkit) 2021/08/10(火) 13:43


tkitさん、ご回答ありがとうございます。

つまりDropboxで「隠しファイルを同じパスに出す」という設定にしてやる必要があるということでしょうかね?
隠しファイルというものはどういったものなのでしょうか・・・? macでもそういう概念はあるのでしょうか・・・?
(り) 2021/08/10(火) 14:41


 現在DropBox上って何だか解りませんが、

 マックにパスがあるとは思えませんが(現在のは知らない)
 テンプレートですよね。

 例えば、テンプレートに下記コードを書いてシート上のボタンにマクロ登録したとします。
 テンプレートの名前を tenten.xltm だとします。
 tenten.xltm をダブルクリックして開き?ボタンをクリックします。
 Windows7では、何も表示されません。

 なぜなら、エクセル画面上に表れているのは単純にtenten.xltmを複製した物だから。
 複製しただけなので、保存もされてないのでパスがありません。
 マックだとなぜ表示されるのか解りませんが、単純にデフォルトの保存場所が表示されているだけなのでは?

 Sub aaaa()
 MsgBox ThisWorkbook.Path
 End Sub

 Windowsの標準テンプレートフォルダ?なら

 Application.TemplatesPath

 で取れます。

 任意の場所だとすると、昔は最近使ったファイルからたどっていたようです。
(BJ) 2021/08/10(火) 16:17

 Macがどうなのかわかりませんが、
 Windowsの場合は保存前の新規ブックのThisworkbook.Path はカラです。
 その状態で、

 ThisWorkbook.ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "test"

 とかすると、ThisWorkbook.Path は空文字列なので、
 パスを指定しないでエクスポートしたことになります。

 結果、どこに保存されるかというと、その時のカレントワーキングディレクトリです。
 カレントワーキングディレクトリが何処になるかは、
 Excelの起動の仕方やファイルの開きかたによって変わります。

 カレントワーキングディレクトリは、CurDir関数で調べることが出来ます。
 PDFの保存先がカレントワーキングディレクトリになってるんじゃないかと思いますので
 調べてみたらどうでしょう。
(´・ω・`) 2021/08/10(火) 16:19

皆様、ご返信ありがとうございます。非常に助かります。
つまり・・・

?@.xltmをダブルクリックで開いたモノは複製されたブックである為、ThisWorkbook.Pathでは.xltmのパスが指定されない。
?A複製された.xltmで「ThisWorkbook.Pathで保存先を指定したPDF出力マクロ」を実行するとパスがない為「カレントディレクトリ」に出力される。
?Bすなわち、.xltmではなく.xlsm(マクロ有効ブック)であれば、ダブルクリックで開いてもThisWorkbook.Pathがしっかり機能してくれる。

という事でしょうか。
私もこれから検証してみますが、勉強中のためなにかと皆様のお助けをお借りする形になると思います・・・
(り) 2021/08/10(火) 20:03


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.