1

Тема: Помогите с макросом WORD

Доброго времени суток. Столкнулся с такой проблемой.
Создать макрокоманду, которая удаляет файл открытого в окне редактора Word документа.

Вот такой макрос требуется создать, формулировка не очень конечно, ну может хотя-бы кто подскажет как сделать такое в ворде без макроса, макрос запишу я сам.

2

Re: Помогите с макросом WORD

Public Sub Удалить_открытый_документ()

    Dim s As String
    
    'запомнить полное_имя открытого документа
    s = ActiveDocument.FullName
    
    'закрыть документ
    ActiveDocument.Close SaveChanges:=False
    
    'удалить файл
    Kill s
    
End Sub

3

Re: Помогите с макросом WORD

а можно в деталях пояснить как он выполнен?

4

Re: Помогите с макросом WORD

Настаев пишет:
Public Sub Удалить_открытый_документ()

    Dim s As String
    
    'запомнить полное_имя открытого документа
    s = ActiveDocument.FullName
    
    'закрыть документ
    ActiveDocument.Close SaveChanges:=False
    
    'удалить файл
    Kill s
    
End Sub

а можно в деталях пояснить как он выполнен?

5

Re: Помогите с макросом WORD

Dim s - создание переменной
As String - задание типа переменной. В данном случае текстовый

s = Activedocument.FullName - переменной присваивается значение. В него передаётся полное имя текущего документа. Когда документ закроется, я уже не буду знать, как он назывался.

ActiveDocument.Close SaveChanges:=False - команда закрытия активного документа. Здесь указан необязательный аргумент SaveChanges. Он говорит, что сохранять документ не нужно. И вопросов задавать тоже.

Kill s - Команда Kill предназначена для удаления файлов. Чтобы указать на нужный файл, я передал этой команде значение из переменной "s"

6

Re: Помогите с макросом WORD

При желании можно добавить предупреждение. Чтобы пользователь имел возможность передумать

7

Re: Помогите с макросом WORD

Настаев пишет:

При желании можно добавить предупреждение. Чтобы пользователь имел возможность передумать

как я понял макрос написан в ручную через VBA?

8

Re: Помогите с макросом WORD

макрозаписью НЕЛЬЗЯ запомнить имя открытого файла

9

Re: Помогите с макросом WORD

всмысле?

10

Re: Помогите с макросом WORD

непонятно, в чем проблема
    'файл открыт , надо запомнить имя в переменную
    'запомнить полное_имя открытого документа
    s = ActiveDocument.FullName
   
    'закрыть документ без сохранения, так как нельзя удалить открытый
    ActiveDocument.Close SaveChanges:=False
   
    'удалить файл
    Kill s

----------------
макрозапись запоминает действия

11

Re: Помогите с макросом WORD

shanemac51 пишет:

непонятно, в чем проблема
    'файл открыт , надо запомнить имя в переменную
    'запомнить полное_имя открытого документа
    s = ActiveDocument.FullName
   
    'закрыть документ без сохранения, так как нельзя удалить открытый
    ActiveDocument.Close SaveChanges:=False
   
    'удалить файл
    Kill s

----------------
макрозапись запоминает действия

но 1 макрос который скинули вполне рабочий

12

Re: Помогите с макросом WORD

Looky пишет:

как я понял макрос написан в ручную через VBA?

Почти все макросы пишутся вручную. Макрорекордер помогает кое-что записать, но его писанину всё равно приходится перечитывать и корректировать. Он - всего лишь помощник. Лично я использую его для отдельных команд, чтобы узнать, как они вызываются.

13

Re: Помогите с макросом WORD

Настаев пишет:
Looky пишет:

как я понял макрос написан в ручную через VBA?

Почти все макросы пишутся вручную. Макрорекордер помогает кое-что записать, но его писанину всё равно приходится перечитывать и корректировать. Он - всего лишь помощник. Лично я использую его для отдельных команд, чтобы узнать, как они вызываются.

ну, а так еще вопрос не по теме, что еще можно написать в VBA?

14

Re: Помогите с макросом WORD

я не могу припомнить , чтобы я не смогла написать на VBA что-то из того, что мне требовалось
может не всегда --оптимально, но решение меня устраивало
иногда я встречаю на форуме примеры с приемами --новинками для меня
----------
конечно, если я смогла сформулировать для себя --что и из чего я хочу получить
несколько раз не смогла сформулировать критерии преобразования