Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

ru:creating_user_reports:use_macros_in_reports:work_in_macros [2016/04/04 11:03]
admin
ru:creating_user_reports:use_macros_in_reports:work_in_macros [2017/10/16 15:07] (текущий)
Строка 9: Строка 9:
   *выбрать закладку "Параметры макросов", в разделе "Параметры макросов для разработчика" установить опцию "Доверять доступ к объектной модели проектов VBA".   *выбрать закладку "Параметры макросов", в разделе "Параметры макросов для разработчика" установить опцию "Доверять доступ к объектной модели проектов VBA".
  
-В Microsoft Word 2010:+В Microsoft Word 2010/2013/2016:
  
   *выбрать пункт меню "Файл -> Параметры…";   *выбрать пункт меню "Файл -> Параметры…";
   *в окне "Параметры Word" выбрать закладку "Центр управления безопасностью", нажать кнопку "Параметры центра управления безопасностью";   *в окне "Параметры Word" выбрать закладку "Центр управления безопасностью", нажать кнопку "Параметры центра управления безопасностью";
   *выбрать закладку "Параметры макросов", в разделе "Параметры макросов для разработчика" установить опцию "Доверять доступ к объектной модели проектов VBA".   *выбрать закладку "Параметры макросов", в разделе "Параметры макросов для разработчика" установить опцию "Доверять доступ к объектной модели проектов VBA".
- 
-Microsoft Word 2010/2013/2016: 
- 
-  - выбрать пункт меню «Файл -> Параметры»; 
-  - в окне «Параметры Word »выбрать закладку «Центр управления безопасностью», нажать кнопку «Параметры центра управления безопасностью»; 
-  - выбрать закладку «Параметры макросов», в разделе «Параметры макросов для разработчика» установить галочку «Доверять доступ к объектной модели проектов VBA». 
  
 == Примечание == == Примечание ==
Строка 91: Строка 85:
 Любой отчет изначально содержит следующий макрос: Любой отчет изначально содержит следующий макрос:
  
-<code vb>+<code>
  
 Sub ПослеВыполненияОтчета(ob As Variant, app As Variant) Sub ПослеВыполненияОтчета(ob As Variant, app As Variant)
Строка 131: Строка 125:
 Использование названия привязки в коде: Использование названия привязки в коде:
  
-<code vb>+<code>
    
 ПеременнаяВКоде = Application.ActiveDocument.Variables.Item("НазваниеПривязки").Value ПеременнаяВКоде = Application.ActiveDocument.Variables.Item("НазваниеПривязки").Value
Строка 145: Строка 139:
 Использование названия привязки в коде: Использование названия привязки в коде:
  
-<code vb>+<code>
      
 Set ТаблицДляОбработки = Application.ActiveDocument.Bookmarks("НазваниеПривязки").Range.Tables(1) Set ТаблицДляОбработки = Application.ActiveDocument.Bookmarks("НазваниеПривязки").Range.Tables(1)
Строка 160: Строка 154:
 **Работа с таблицей через название привязки** **Работа с таблицей через название привязки**
  
-<code vb>+<code>
  'переменная для работы с конкретной таблицей  'переменная для работы с конкретной таблицей
 Set Table = Application.ActiveDocument.Bookmarks("НазваниеПривязки").Range.Tables(1) Set Table = Application.ActiveDocument.Bookmarks("НазваниеПривязки").Range.Tables(1)
Строка 174: Строка 168:
 **Работа с таблицей через её номер в документе** **Работа с таблицей через её номер в документе**
  
-<code vb>+<code>
  
 сountTables = ActiveDocument.Tables.Count 'количество таблиц в документе сountTables = ActiveDocument.Tables.Count 'количество таблиц в документе
Строка 192: Строка 186:
   * Таблицы могут содержать объединенные ячейки. В случае перебора всех строк таблицы может возникнуть ошибка. Чтобы этого не было,  необходимо использовать команду игнорирования ошибки:   * Таблицы могут содержать объединенные ячейки. В случае перебора всех строк таблицы может возникнуть ошибка. Чтобы этого не было,  необходимо использовать команду игнорирования ошибки:
  
-<code vb>+<code>
 On Error Resume Next ' игнорирование <error 5991> - ячейки таблицы имеют вертикальное объединение On Error Resume Next ' игнорирование <error 5991> - ячейки таблицы имеют вертикальное объединение
    
Строка 199: Строка 193:
   * При получении текста таблицы следует помнить, что полученное значение ячейки так же содержит в себе 2 служебных символа. Для обработки данных ячейки без этих служебных символов следует произвести «очистку» значения. Например:   * При получении текста таблицы следует помнить, что полученное значение ячейки так же содержит в себе 2 служебных символа. Для обработки данных ячейки без этих служебных символов следует произвести «очистку» значения. Например:
  
-<code vb>+<code>
  
 СellText = Selection.Tables(1).Cell(3,2).Range.Text 'текст ячейки со служебными символами СellText = Selection.Tables(1).Cell(3,2).Range.Text 'текст ячейки со служебными символами
Строка 230: Строка 224:
    
 Пример использования в коде: Пример использования в коде:
-<code vb>+<code>
  
 Dim HTMLCreate As Boolean Dim HTMLCreate As Boolean
Строка 277: Строка 271:
 Определяем название привязки типа "Список", которая представляет нужную таблицу (см. [[ru/manual/manual]] -> [[ru/manual/report/insert_anchor?&#пример_определения_названия_привязки_типа_список|Пример определения названия привязки типа "Список"]]). Определяем название привязки типа "Список", которая представляет нужную таблицу (см. [[ru/manual/manual]] -> [[ru/manual/report/insert_anchor?&#пример_определения_названия_привязки_типа_список|Пример определения названия привязки типа "Список"]]).
  
-<code vb>+<code>
  
 BookmarkName = "Изменения_процесса_e1ded8b0" 'название привязки BookmarkName = "Изменения_процесса_e1ded8b0" 'название привязки
Строка 312: Строка 306:
 Определяем название привязки типа "Объект", которая представляет нужное поле в отчёте (см. статью [[ru/manual/manual]] -> [[ru/manual/report/insert_anchor?&#пример_определения_названия_привязки_типа_объект|Пример определения названия привязки типа "Объект"]]). Определяем название привязки типа "Объект", которая представляет нужное поле в отчёте (см. статью [[ru/manual/manual]] -> [[ru/manual/report/insert_anchor?&#пример_определения_названия_привязки_типа_объект|Пример определения названия привязки типа "Объект"]]).
  
-<code vb>+<code>
  
 VarName = "Статус_процесса_c9a10e8d" 'название привязки VarName = "Статус_процесса_c9a10e8d" 'название привязки
Строка 365: Строка 359:
 Например, при выводе отчета от процесса получить данные названия процесса можно таким образом: Например, при выводе отчета от процесса получить данные названия процесса можно таким образом:
  
-<code vb>+<code>
  
    Name = ob.Название  'получаем Название объекта, от которого вызвали отчет     Name = ob.Название  'получаем Название объекта, от которого вызвали отчет 
Строка 389: Строка 383:
  
 В таких случаях каждую решаемую задачу удобно оформлять отдельным макросом. А в ключевом макросе "ПослеВыполненияОтчета" лишь вызывать по очереди нужные макросы. Все эти макросы оформляются в том же окне, где и ключевой макрос и делается так: В таких случаях каждую решаемую задачу удобно оформлять отдельным макросом. А в ключевом макросе "ПослеВыполненияОтчета" лишь вызывать по очереди нужные макросы. Все эти макросы оформляются в том же окне, где и ключевой макрос и делается так:
-<code vb>+<code>
 Sub ПослеВыполненияОтчета(ob As Variant, app As Variant) Sub ПослеВыполненияОтчета(ob As Variant, app As Variant)
  
Строка 411: Строка 405:
 Если такие макросы имеют одинаковые части кода, то их тоже можно (и рекомендуется) выносить в отдельные макросы или функции в том же окне с ключевым макросом. Например, функция для определения присутствия в отчете необходимой привязки типа "Список" (см. [[#работа_с_копией_отчета_содержащим_макрос|Работа с копией отчета, содержащим макрос]]) может быть следующей: Если такие макросы имеют одинаковые части кода, то их тоже можно (и рекомендуется) выносить в отдельные макросы или функции в том же окне с ключевым макросом. Например, функция для определения присутствия в отчете необходимой привязки типа "Список" (см. [[#работа_с_копией_отчета_содержащим_макрос|Работа с копией отчета, содержащим макрос]]) может быть следующей:
  
-<code vb>+<code>
 Function BookmarkIs(BookmarkName As String) As Boolean Function BookmarkIs(BookmarkName As String) As Boolean
  
Строка 435: Строка 429:
  
 Использование этой функции из макроса может быть таким: Использование этой функции из макроса может быть таким:
-<code vb>+<code>
 Sub MacrosN () Sub MacrosN ()
  
Актуальные новости, публикации и практики для бизнес-архитекторов и аналитиков
Driven by DokuWiki