次の呼び出しを使用して、Word for Mac マクロでアクティブなドキュメントのパスを返そうとしています。
strFolder = ActiveDocument.Path
これにより、ファイル名も指定されます。
パスまたは文字列操作からマイナスを引くコマンドはありActiveDocument.Name
ますか?
FWIW この問題は Word 2008 で導入されたと思います。ここでは、「パス」属性と「フルネーム」属性が同じ値になっています (Applescript では、VBA がないため)。同じ VBA が Word 2004 で正常に動作しました。
既存のソリューションの潜在的な問題の 1 つは、フォルダーがドキュメントと同じ名前を持つ可能性があることです。たとえば、ドキュメントのフルネームが
Macintosh HD:Users:me:Documents:mydoc.docx:mydoc.docx
それに対処する必要がある場合は、次のようなものを検討できます
strFolder = left(ActiveDocument.Path, len(ActiveDocument.Path) - len(ActiveDocument.Name))
(おそらく、保存されていないドキュメントにも別のものが必要です)。
なぜこれが起こったのかわかりませんが、解決策は以下のとおりです...
strFolder = Replace(ActiveDocument.Path, ActiveDocument.Name, "")
これが将来誰か他の人を助けることができることを願っています!