Поделится

воскресенье, 28 июля 2019 г.

Записки- заметки Любимые макросы Болгарчук Р.

СОДЕРЖАНИЕ
Любимые макросы 1
Краткое предисловие. 3
Макросы 3
«С возвращением!» или «SHIFT+F5» в один клик. 3
Вставить текущую дату с заморозкой. 3
Вставка гиперссылки внутрь текста названия сайта. 4
Напутствие. 4
Включить вкладку разработчик. 4
Разрешить (включить) макросы в 2010 офисе 5
Добавить макросы. 7
Сам макрос 8
Добавление макрасов в 2010 офисе аналогично 9
Добавление кнопки макросов. 10
Экспорт импорт настроек 13
Перспективы и планы на будущее. 13


Краткое предисловие. 


Давно собирался выложить свои любимые макросы. Но, как уже не однократно писал, до сих пор, на многих сайтах проблематично вставить форматированный текст с ворда вместе с картинками. А добавлять их отдельно — нет ни времени, ни желания. Однако у меня много мануалов по разным темам. Преимущественно делал их для себя, поэтому для кого-то, возможно будет не актуально, не интересно и т.д. и т.п. Тем не менее, надеюсь кому то подобная информация окажется полезной. 

Макросы


Не буду писать тут подробно что такое макросы, кому интересно гуглите. Скажу лишь только что есть макровирусы, т.е. вирусы, написанные на макросах, поэтому будьте осторожны. С другой стороны макрокоманды могут стать незаменимым помощником и мощным инструментом в опытных руках. Ниже приведу лишь пару простеньких макросов, которыми я постоянно пользуюсь. Рассмотрю макросы для ворда. 

«С возвращением!» или «SHIFT+F5» в один клик.


Закладка "С возвращением"1 – это почти и не макрос, а просто кнопка перехода на последнее место редактирования документа. При её нажатии выполняется условное нажатие сочетания клавиш SHIFT+F5. Аналогичен сообщению «С возвращением!», добавленному в последних версиях ворда, на которое я все время не успеваю нажимать. 
 Очень удобно, когда документ большой, и в нем часто дописывают что-то в середине.  Однако он не всегда корректно работает. Хотелось бы найти, или создать аналогичный, но более проработанный макрос запоминающий несколько мест в документе, с возможностью гибкой навигации и выбора перехода по ним. Но, пока довольствуюсь и активно использую то что есть.
Сам макрос на языке макросов выглядит так: 
Sub вернутся_в_место_документа()
    Application.GoBack
End Sub

Вставить текущую дату с заморозкой.


2 – второй макрос сложнее. Он состоит уже из нескольких комбинаций и действий. Раньше мне постоянно приходилось нажимать их на клавиатуре. Часто забывал. А голова по моему мнению не жесткий диск, она для того что бы думать, а не помнить все наизусть. Поэтому я просто на просто записал постоянно повторяющиеся нажатия в макрос. А именно: Ctrl+Alt +D (вставка текущей даты) и затем стрелка влево а потом Ctrl +F11 (заморозка даты) и стрелка вправо


Sub дата_текущ_замороз()
'
' дата_текущ_замороз Макрос
'
'
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldDate
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.Fields.Locked = True
    Selection.MoveRight Unit:=wdCharacter, Count:=1
End Sub
Если заморозку даты не поставить, то при обновлении она изменится на текущую. А я часто использую ворд в качестве календаря, записной книжки, днивника и т.д.  (что когда делал…). Поэтому нужно что бы дата оставалась той, которая была создана в момент времени записи (заметки, комментария и т.д., и т.п.) 

Вставка гиперссылки внутрь текста названия сайта.


На первый взгляд звучит не совсем понятно. Но на самом деле очень нужный, на мой взгляд, макрос. Особенно если, кто-то как я, сохраняет ссылки на интересные видео, статьи, странички и т.д. в ворд. А потом еще и слушает их, или пытается найти в ворде, то или иное видео, годичной давности по названию. Этот макрос уже сильно сложный для меня, поэтому, скажу честно, не знаю, как он работает. Делал его не я, только дал идею. Помогли на форуме. Подробно можно почитать перейдя по ссылке ниже. Кстати она как раз-таки сделана именно этим макросом. 
Как сделать макрос вставки гиперссылки в текст в ворде? — VBA — Киберфорум
Большое спасибо пользователю под ником fever brain

Напутствие.


Добавить все эти макросы можно в пару кликов. Однако для новичков это может оказаться не простым делом. Да и я часто забываю, как добавлять. И садясь за новый ПК, за которым планирую продолжительно работать, первым делом открываю эту инструкцию.  В целом она не сложная, и думаю осилит даже начинающий. Потратив 10-20 минут в дальнейшем можно не только сэкономить часы, которые накапливаются из секунд тысяч монотонных нажатий; но и освоить азы написания макросов, настройки ворда, для дальнейшей работы, создание своих макросов и многого другого. Поэтому думаю будет весьма полезно. Хотя, не факт, что все получится, т.к. у всех разные возможности, программы, нюансы… Начну с азов для полных… чайников. А те, кто уже умеет включать макросы и хочет скопировать и вставить только сам код, могут воспользоваться «СОДЕРЖАНИЕм» — нажав Ctrl и щелкнув пальцом курсора на нем. 


Включить вкладку разработчик.


Если до этого никто не добавлял макросов, то возможно потребуется в ворде включить вкладку разработчика. 
Это разовое действие. Поэтому не пугайтесь, постоянно его не надо включать. Один раз включите и ворд должен запомнить это на всю жизнь. Часто подобные действия отталкивают ленивых новичков, т.к. они думают, что им придётся совершать такое действие постоянно. ЭТО РАЗОВОЕ ДЕЙСТАИЕ! 
Итак, в разных версиях она может располагаться в разных местах. В 2013 офисе она на вкладке 1 ФАЙЛ → 2 Параметры → 3 настроить ленту

Если скриншот сильно мелкий, удерживая Shift покрутите колесо мыши от себя
В разделе 3 Настройка ленты в списке Основные вкладки. Там установите флажок 4 Разработчик.

Разрешить (включить) макросы в 2010 офисе


Затем разрешить использование макрасов. В офисе 2010 это почти там же, но в разделе безопасность. Т.е. ФАЙЛ → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Включить все макросы. 










После появится панель разработчика, и можно будет безнаказанно добавлять любые макросы.  

Добавить макросы. 


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

Имя можно задать любое, но без пробелов и разных «экзотических» символов. Вместо пробелов часто используется нижнее подчеркивание между словами: «вот_так». Длинные имена не желательны.

Затем нажать «Создать». Откроется поле. И вот тут, самое главное, не промахнуться и вставить нужный код в это поле. Должно получиться что-то подобное тому что на рисунке. После чего нажать на дискетку (это такой синенький квадратик с белым прямоугольником и еще одним квадратиком внутри). Т.е. сохранить.



Теперь еще раз и по пунктам. Выделяем и копируем все мелким желтым шрифтом. 

Сам макрос


Function UrlTitleXML(ByVal Url$) As String    'Получение заголовка страницы по указанной ссылке классом Microsoft XML
    Dim title As String
    On Error Resume Next    With CreateObject("MSXML2.XMLHTTP")        .Open "GET", Url, False        .Send        UrlTitleXML = Split(.ResponseText, "", 2, 1)(1)<br></span><span lang="EN-US" style="font-size:5.0pt;mso-bidi-font-size: 9.0pt;background:yellow;mso-highlight:yellow;mso-ansi-language:EN-US">        UrlTitleXML = Split(UrlTitleXML, "", 2, 1)(0)    End WithEnd Function
Sub вставка_гиперссылки()
'' вставка_гиперссылки Макрос''    With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")     
        .GetFromClipboard        If isUrl(.GetText) Then            ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _                    .GetText, SubAddress:="", ScreenTip:="", _                    TextToDisplay:=UrlTitleXML(.GetText)     
        Else
            MsgBox "Текст буфера не является url"        End If
     
     End With 
 
 End Sub Function isUrl(ByVal Url$) As Boolean    Dim v    For Each v In Array("ftp://", "http://", "https://")        If InStr(1, Url, v, 1) > 0 Then isUrl = 1: Exit For    NextEnd FunctionSub дата_текущ_замороз()
'' дата_текущ_замороз Макрос''    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldDate    Selection.MoveLeft Unit:=wdCharacter, Count:=1    Selection.Fields.Locked = True    Selection.MoveRight Unit:=wdCharacter, Count:=1End Sub Sub вернутся_в_место_документа()'' вернутся_в_место_документа Макрос''    Application.GoBack    End Sub



Добавление макрасов в 2010 офисе аналогично


Переходим на вкладку «Разработчики» → Макросы

В поле «Имя» вверху вводим название макроса. Далее нажимаем «Создать». 
 И в открывшееся поле вставляем скопированный макрос.
Если там уже есть какие-то макросы, то можно вставить ниже, хотя, я не в курсе, возможно будет конфликтовать. Поэтому выделяю все, и вставляю на место того, что там было. Как вариант текст, который там был, можно сохранить отдельно. Но это уже нюансы, они на данном этапе (начинающих) не сильно важны.





Все! Макросы добавлены. Однако вызывать их с панели макросов неудобно. Поэтому настроил и вывел на панель быстрого доступа кнопки, при нажатии на которые будет срабатывать макрос. 


Добавление кнопки макросов. 




Файл→ Параметры→ Настроить ленту


В свитке выбираем Макросы →нужный макрос, например: «Normal.NewMacros.вставить_дату…»



Аналогично можно вставить в верх. Выбрав там же Файл→ Параметры→ но уже не  «Настроить ленту» а  «Панель быстрого доступа». Либо в то же меню можно попасть проще. Нажав на перевернутый треугольник, в самом верху справа, от значков, и выбрав «Другие команды»

Таким образом, выбрать 1 Макросы→ 2 «Normal.NewMacros.название_макроса…» «Добавить >>» → 3 Изменить (внизу, будет активно при выделении, нажатии на добавленный макрос). После чего можно будет переименовать макрос, и выбрать другой значок.  

Еще бы разобраться как вставлять свои значки. Может кто знает напишите. 
Добавление значков и переименование было составлено по мотивам видео  
«Назначение кнопки макросу в Excel»

Экспорт импорт настроек


Что бы постоянно не выводить и не настраивать все эти названия, кнопочки на других машинах, можно просто экспортировать все эти настройки. Садясь за новый ПК добавлять макросы, как описывал выше, и импортировать настройки. 
Файл – «Панель быстрого доступа» — Импорт (если нужно сохранить настройки), или Экспорт (если нужно загрузить ранее сохраненные настройки). 





Аналогично экспортировать и ленту. Т.е. те надписи которые под Файл, Главная, разработчик и т.д. Сохраняет по умолчанию под названием Word.exportedUI

Перспективы и планы на будущее.


Найти как добавлять не просто дату, а дату с определенным форматом заголовка. 
Разбить один файл с разными заголовками на много и обратный процесс – соединить. 
Показывать и прятать все гиперссылки в документе. 
Более гибкие переходы на место редактирования с возможностью как-то запоминать последние места редактирования. 
Выводить весь список гиперссылок из документа в отдельный файл. Где-то у меня такой макрос был, но работает он кривовато, и сложно. 
В общем идей много, а времени мало. Пока опубликую что есть, возможно в будущем, если будут деньги на еду, жилье и не придётся что-то срочно ремонтировать, воевать с аферистами… займусь подробнее как макросами, так и др. своими наработками

Комментариев нет:

Отправить комментарий

Примечания