I have a Word document that is already saved and I need to get its existing save directory and/or full file path (i.e. C:UsersPublicDocumentstestDoc.docx).
How can this be acquired from a macro/VBA?
Deduplicator
44.3k7 gold badges65 silver badges115 bronze badges
asked Jun 10, 2013 at 19:55
5
ActiveDocument.FullName
The above gives the full path to the document, including the file name.
ActiveDocument.Path
The above gives the directory where your document is saved.
ActiveDocument.Name
The above gives the name of the document, without path information.
answered Jun 10, 2013 at 20:04
shahkalpeshshahkalpesh
33k3 gold badges67 silver badges88 bronze badges
| title | keywords | f1_keywords | ms.prod | api_name | ms.assetid | ms.date | ms.localizationpriority |
|---|---|---|---|---|---|---|---|
|
Application.Path property (Word) |
vbawd10.chm158335057 |
vbawd10.chm158335057 |
word |
Word.Application.Path |
224b4c66-f49c-55f1-8b6b-74f5ed979a3d |
06/08/2017 |
medium |
Application.Path property (Word)
Returns the disk or Web path to the specified object. Read-only String.
Syntax
expression.Path
expression A variable that represents an Application object.
Remarks
The path doesn’t include a trailing character — for example, «C:MSOffice» or «https://MyServer». Use the PathSeparator property to add the character that separates folders and drive letters. Use the Name property of the Document object to return the file name without the path and use the FullName property to return the file name and the path together.
[!NOTE]
Use the PathSeparator property to build web addresses even though they contain forward slashes (/) and the PathSeparator property defaults to a backslash ().
Example
This example displays the path and file name of the active document.
MsgBox ActiveDocument.Path & Application.PathSeparator & _ ActiveDocument.Name
This example changes the current folder to the path of the template attached to the active document.
ChDir ActiveDocument.AttachedTemplate.Path
This example displays the path of the first add-in in the AddIns collection.
If AddIns.Count >= 1 Then MsgBox AddIns(1).Path
See also
Application Object
[!includeSupport and feedback]
|
Mojakhed 0 / 0 / 0 Регистрация: 23.10.2012 Сообщений: 13 |
||||||||
|
1 |
||||||||
Как получить путь к файлу и имя этого файла в переменные23.10.2012, 11:58. Показов 89772. Ответов 22 Метки нет (Все метки)
Добрый день, Задача проста, есть решение, но оно не изящное, хотелось бы оптимизировать код. Все делается в VBA Excel 2010. 1. Получаем Имя файла
2. Получаем Путь к файлу (код не мой, помог Гугл)
Заранее спасибо
0 |
|
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
23.10.2012, 11:58 |
|
22 |
|
Казанский 15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
||||
|
23.10.2012, 12:17 |
2 |
|||
|
fName в первом коде — полный путь к файлу. Вы хотите разделить его на путь к папке и имя?
2 |
|
0 / 0 / 0 Регистрация: 23.10.2012 Сообщений: 13 |
|
|
23.10.2012, 15:18 [ТС] |
3 |
|
Благодарю, вопрос исчерпан.
0 |
|
Hugo121 6875 / 2807 / 533 Регистрация: 19.10.2012 Сообщений: 8,562 |
||||
|
23.10.2012, 17:30 |
4 |
|||
|
Так попробуйте в первом коде:
Получите «полный путь к этому файлу, а так же его имя в отдельные переменные».
0 |
|
0 / 0 / 0 Регистрация: 23.10.2012 Сообщений: 13 |
|
|
23.10.2012, 19:14 [ТС] |
5 |
|
To Hugo121 Наверное я не достаточно четко сформулировал задачу, в любом случае, Казанский помог с решением проблемы. Я получил что хотел. В следующий раз буду четко формулировать. Спасибо.
0 |
|
Hugo121 6875 / 2807 / 533 Регистрация: 19.10.2012 Сообщений: 8,562 |
||||
|
23.10.2012, 20:55 |
6 |
|||
|
Ну когда есть полный путь и имя — легко от полного пути отрезать на длину имени…
0 |
|
rattrapper foo(); 886 / 587 / 222 Регистрация: 03.07.2013 Сообщений: 1,549 Записей в блоге: 2 |
||||||||
|
09.07.2013, 16:29 |
7 |
|||||||
|
нужна помощь, у меня код не работает(exel’13)
Импорт модуля проекта из файла
у меня нужные модули находятся в том же месте, что и книга, но я никак не могу получить полный путь к книге программно!
Добавлено через 36 минут
никак не могу получить полный путь к книге программно как же все просто)
0 |
|
ExpressFX 2 / 2 / 0 Регистрация: 24.10.2015 Сообщений: 1 |
||||
|
24.01.2016, 18:54 |
8 |
|||
|
Пути к файлу и имя файла — просто как 2+2 !
Выйдет сообщение:
2 |
|
4 / 4 / 0 Регистрация: 29.06.2015 Сообщений: 17 |
|
|
29.01.2016, 13:41 |
9 |
|
ActiveWindow.Caption возвращает имя открытого окна, т.е. имя файла без расширения.
0 |
|
Казанский 15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
||||
|
29.01.2016, 15:20 |
10 |
|||
|
Федоров, …если заголовок окна не поменяли
0 |
|
0 / 0 / 0 Регистрация: 07.09.2015 Сообщений: 4 |
|
|
18.03.2016, 14:08 |
11 |
|
доброго дня всем, подскажите, а как теперь получаемые ответы вывести в ячейку? и чтоб без диалогового окна? просто выбор файла, а результат в ячейке, а не в окне.
0 |
|
Hugo121 6875 / 2807 / 533 Регистрация: 19.10.2012 Сообщений: 8,562 |
||||
|
18.03.2016, 14:19 |
12 |
|||
|
Вместо Msgbox пишите
— получите вместо сообщения строку в ячейке.
1 |
|
0 / 0 / 0 Регистрация: 07.09.2015 Сообщений: 4 |
|
|
18.03.2016, 15:24 |
13 |
|
благодарю, то что надо Добавлено через 1 минуту
0 |
|
6875 / 2807 / 533 Регистрация: 19.10.2012 Сообщений: 8,562 |
|
|
18.03.2016, 16:12 |
14 |
|
Используете ДВССЫЛ()? Она не в всех формулах работает. Если всё равно используете макрос — так сразу и формируйте макросом полностью формулы, или вообще делайте всю работу макросом.
0 |
|
0 / 0 / 0 Регистрация: 07.09.2015 Сообщений: 4 |
|
|
21.03.2016, 07:20 |
15 |
|
ДВССЫЛ не успользую, а в макросах не силен совсем.
0 |
|
Hugo121 6875 / 2807 / 533 Регистрация: 19.10.2012 Сообщений: 8,562 |
||||||||
|
21.03.2016, 09:22 |
16 |
|||||||
|
Попробуйте после замены файла
или
0 |
|
0 / 0 / 0 Регистрация: 07.09.2015 Сообщений: 4 |
|
|
21.03.2016, 11:04 |
17 |
|
нет, не работает ни в теле первого макроса, ни с отдельной кнопки((
0 |
|
6875 / 2807 / 533 Регистрация: 19.10.2012 Сообщений: 8,562 |
|
|
21.03.2016, 11:30 |
18 |
|
Попробуйте так — копируете любой файл клиента под именем например шаблон.xls, настраиваете все нужные формулы на импорт из этого файла.
0 |
|
Ivan_Ivanovich 0 / 0 / 0 Регистрация: 01.02.2016 Сообщений: 29 |
||||||||
|
14.04.2016, 09:59 |
19 |
|||||||
|
Здравствуйте, а подскажите пожалуйста как сделать так, чтобы можно было просто выбирать файл через диалоговое окно, не указывая при этом путь к файлу и само название файла. Нужно, чтобы была возможность выбрать любой файл на компьютере .xlsx и далее с ним работать (импортировать из него).
А вот продолжение кода в форме, при помощи которого 100% идет выбор файла (только автоматически, по прописанному пути и файлу, а нужно, чтобы можно было любой файл выбрать, чтобы не был заранее прописан код для файла) и уже выполнялась работа с ним.
0 |
|
6875 / 2807 / 533 Регистрация: 19.10.2012 Сообщений: 8,562 |
|
|
14.04.2016, 10:04 |
20 |
|
Т.е. не пробовали то, что я предлагаю?
0 |
|
прописать путь к файлу без открытия окна редактора VB |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Формулировка задачи:
в макросе MS Word нужно получить путь и имя файла, выбранного в диалоговом окне «Открыть файл»..
имя файла есть, а вот путь к нему никак не удается получить.. пол дня сегодня убил на поиск нужной функции, так и не нашел..
т.е. при выборе файла сейчас выдается сообщение с его именем, типа «Книга1.xls», а нужно чтобы выводилось «c:ДиректорияКнига1.xls».. помогите, плиз, решить проблемку..
Код к задаче: «Путь к файлу»
textual
With Application.FileDialog(msoFileDialogOpen) .InitialFileName = "*.xls" .AllowMultiSelect = False If .Show = -1 Then MsgBox .SelectedItems(1) End With
Полезно ли:
14 голосов , оценка 4.071 из 5




