Добавлено форматирование картинок
This commit is contained in:
BIN
Gostomizer.dotm
BIN
Gostomizer.dotm
Binary file not shown.
324
MacrosList.bas
324
MacrosList.bas
@@ -1,86 +1,119 @@
|
|||||||
Sub ML_AddListA3()
|
|
||||||
'for debug
|
|
||||||
'MsgBox "Запуск функции вставки листа А3"
|
|
||||||
|
|
||||||
Dim ps As PageSetup
|
|
||||||
|
|
||||||
Set ps = Selection.PageSetup
|
|
||||||
|
|
||||||
Selection.InsertBreak Type:=wdSectionBreakNextPage
|
|
||||||
With Selection.PageSetup
|
|
||||||
.LineNumbering.Active = False
|
|
||||||
.Orientation = wdOrientLandscape
|
|
||||||
.TopMargin = CentimetersToPoints(1.5)
|
|
||||||
.BottomMargin = CentimetersToPoints(3)
|
|
||||||
.LeftMargin = CentimetersToPoints(2)
|
|
||||||
.RightMargin = CentimetersToPoints(2)
|
|
||||||
.Gutter = CentimetersToPoints(0)
|
|
||||||
.HeaderDistance = CentimetersToPoints(1.25)
|
|
||||||
.FooterDistance = CentimetersToPoints(1.25)
|
|
||||||
.PageWidth = CentimetersToPoints(29.7)
|
|
||||||
.PageHeight = CentimetersToPoints(21)
|
|
||||||
.FirstPageTray = wdPrinterDefaultBin
|
|
||||||
.OtherPagesTray = wdPrinterDefaultBin
|
|
||||||
.SectionStart = wdSectionNewPage
|
|
||||||
.OddAndEvenPagesHeaderFooter = False
|
|
||||||
.DifferentFirstPageHeaderFooter = False
|
|
||||||
.VerticalAlignment = wdAlignVerticalTop
|
|
||||||
.SuppressEndnotes = False
|
|
||||||
.MirrorMargins = False
|
|
||||||
.TwoPagesOnOne = False
|
|
||||||
.BookFoldPrinting = False
|
|
||||||
.BookFoldRevPrinting = False
|
|
||||||
.BookFoldPrintingSheets = 1
|
|
||||||
.GutterPos = wdGutterPosLeft
|
|
||||||
End With
|
|
||||||
|
|
||||||
Selection.InsertBreak Type:=wdSectionBreakNextPage
|
|
||||||
Selection.PageSetup = ps
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Sub ML_AddListA4()
|
Sub ML_AddListA4()
|
||||||
'for debug
|
'for debug
|
||||||
'MsgBox "Запуск функции вставки листа А4"
|
'MsgBox "Запуск функции вставки листа А4"
|
||||||
|
|
||||||
MsgBox "до Selection.PageSetup.Orientation = " & Selection.PageSetup.Orientation
|
'Dim ps As PageSetup
|
||||||
|
|
||||||
|
'Set ps = Selection.PageSetup
|
||||||
|
|
||||||
|
'Loas inserting as new chapter/breaks
|
||||||
|
Selection.InsertBreak Type:=wdSectionBreakNextPage
|
||||||
|
Selection.InsertBreak Type:=wdSectionBreakNextPage
|
||||||
|
Selection.MoveLeft Unit:=wdCharacter, Count:=1
|
||||||
|
|
||||||
|
'wdPaperSize - https://learn.microsoft.com/en-us/office/vba/api/word.wdpapersize
|
||||||
|
'wdPaperA3 = 6
|
||||||
|
'wdPaperA4 = 7
|
||||||
|
|
||||||
Selection.InsertBreak Type:=wdSectionBreakNextPage
|
|
||||||
With Selection.PageSetup
|
With Selection.PageSetup
|
||||||
.LineNumbering.Active = False
|
.PaperSize = wdPaperA4
|
||||||
.Orientation = wdOrientPortrait
|
.Orientation = wdOrientLandscape
|
||||||
.TopMargin = CentimetersToPoints(2)
|
.TopMargin = CentimetersToPoints(2)
|
||||||
.BottomMargin = CentimetersToPoints(2)
|
.BottomMargin = CentimetersToPoints(2)
|
||||||
.LeftMargin = CentimetersToPoints(3)
|
.LeftMargin = CentimetersToPoints(3)
|
||||||
.RightMargin = CentimetersToPoints(1.5)
|
.RightMargin = CentimetersToPoints(1.5)
|
||||||
.Gutter = CentimetersToPoints(0)
|
|
||||||
.HeaderDistance = CentimetersToPoints(1.25)
|
|
||||||
.FooterDistance = CentimetersToPoints(1.25)
|
|
||||||
.PageWidth = CentimetersToPoints(29.7)
|
|
||||||
.PageHeight = CentimetersToPoints(42)
|
|
||||||
.FirstPageTray = wdPrinterDefaultBin
|
|
||||||
.OtherPagesTray = wdPrinterDefaultBin
|
|
||||||
.SectionStart = wdSectionNewPage
|
|
||||||
.OddAndEvenPagesHeaderFooter = False
|
|
||||||
.DifferentFirstPageHeaderFooter = False
|
|
||||||
.VerticalAlignment = wdAlignVerticalTop
|
|
||||||
.SuppressEndnotes = False
|
|
||||||
.MirrorMargins = False
|
|
||||||
.TwoPagesOnOne = False
|
|
||||||
.BookFoldPrinting = False
|
|
||||||
.BookFoldRevPrinting = False
|
|
||||||
.BookFoldPrintingSheets = 1
|
|
||||||
.GutterPos = wdGutterPosLeft
|
|
||||||
End With
|
End With
|
||||||
|
|
||||||
MsgBox "после Selection.PageSetup.Orientation = " & Selection.PageSetup.Orientation
|
'With Selection.PageSetup
|
||||||
|
' .LineNumbering.Active = False
|
||||||
|
' .Orientation = wdOrientLandscape
|
||||||
|
' .TopMargin = CentimetersToPoints(1.5)
|
||||||
|
' .BottomMargin = CentimetersToPoints(3)
|
||||||
|
' .LeftMargin = CentimetersToPoints(2)
|
||||||
|
' .RightMargin = CentimetersToPoints(2)
|
||||||
|
' .Gutter = CentimetersToPoints(0)
|
||||||
|
' .HeaderDistance = CentimetersToPoints(1.25)
|
||||||
|
' .FooterDistance = CentimetersToPoints(1.25)
|
||||||
|
' .PageWidth = CentimetersToPoints(29.7)
|
||||||
|
' .PageHeight = CentimetersToPoints(21)
|
||||||
|
' .FirstPageTray = wdPrinterDefaultBin
|
||||||
|
' .OtherPagesTray = wdPrinterDefaultBin
|
||||||
|
' .SectionStart = wdSectionNewPage
|
||||||
|
' .OddAndEvenPagesHeaderFooter = False
|
||||||
|
' .DifferentFirstPageHeaderFooter = False
|
||||||
|
' .VerticalAlignment = wdAlignVerticalTop
|
||||||
|
' .SuppressEndnotes = False
|
||||||
|
' .MirrorMargins = False
|
||||||
|
' .TwoPagesOnOne = False
|
||||||
|
' .BookFoldPrinting = False
|
||||||
|
' .BookFoldRevPrinting = False
|
||||||
|
' .BookFoldPrintingSheets = 1
|
||||||
|
' .GutterPos = wdGutterPosLeft
|
||||||
|
'End With
|
||||||
|
|
||||||
If Selection.PageSetup.Orientation = wdOrientPortrait Then
|
|
||||||
MsgBox "Портретная"
|
End Sub
|
||||||
Selection.PageSetup.Orientation = wdOrientLandscape
|
|
||||||
Else
|
Sub ML_AddListA3()
|
||||||
MsgBox "Альбомная"
|
'for debug
|
||||||
Selection.PageSetup.Orientation = wdOrientPortrait
|
'MsgBox "Запуск функции вставки листа А3"
|
||||||
End If
|
'MsgBox "до Selection.PageSetup.Orientation = " & Selection.PageSetup.Orientation
|
||||||
|
|
||||||
|
'Loas inserting as new chapter/breaks
|
||||||
|
Selection.InsertBreak Type:=wdSectionBreakNextPage
|
||||||
|
Selection.InsertBreak Type:=wdSectionBreakNextPage
|
||||||
|
Selection.MoveLeft Unit:=wdCharacter, Count:=1
|
||||||
|
|
||||||
|
'wdPaperSize - https://learn.microsoft.com/en-us/office/vba/api/word.wdpapersize
|
||||||
|
'wdPaperA3 = 6
|
||||||
|
'wdPaperA4 = 7
|
||||||
|
|
||||||
|
With Selection.PageSetup
|
||||||
|
.PaperSize = wdPaperA3
|
||||||
|
.Orientation = wdOrientLandscape
|
||||||
|
.TopMargin = CentimetersToPoints(2)
|
||||||
|
.BottomMargin = CentimetersToPoints(2)
|
||||||
|
.LeftMargin = CentimetersToPoints(3)
|
||||||
|
.RightMargin = CentimetersToPoints(1.5)
|
||||||
|
End With
|
||||||
|
|
||||||
|
'With Selection.PageSetup
|
||||||
|
' .LineNumbering.Active = False
|
||||||
|
' .Orientation = wdOrientPortrait
|
||||||
|
' .TopMargin = CentimetersToPoints(2)
|
||||||
|
' .BottomMargin = CentimetersToPoints(2)
|
||||||
|
' .LeftMargin = CentimetersToPoints(3)
|
||||||
|
' .RightMargin = CentimetersToPoints(1.5)
|
||||||
|
' .Gutter = CentimetersToPoints(0)
|
||||||
|
' .HeaderDistance = CentimetersToPoints(1.25)
|
||||||
|
' .FooterDistance = CentimetersToPoints(1.25)
|
||||||
|
' '.PageWidth = CentimetersToPoints(29.7)
|
||||||
|
' '.PageHeight = CentimetersToPoints(42)
|
||||||
|
' .PaperSize = wdPaperA3
|
||||||
|
' .FirstPageTray = wdPrinterDefaultBin
|
||||||
|
' .OtherPagesTray = wdPrinterDefaultBin
|
||||||
|
' .SectionStart = wdSectionNewPage
|
||||||
|
' .OddAndEvenPagesHeaderFooter = False
|
||||||
|
' .DifferentFirstPageHeaderFooter = False
|
||||||
|
' .VerticalAlignment = wdAlignVerticalTop
|
||||||
|
' .SuppressEndnotes = False
|
||||||
|
' .MirrorMargins = False
|
||||||
|
' .TwoPagesOnOne = False
|
||||||
|
' .BookFoldPrinting = False
|
||||||
|
' .BookFoldRevPrinting = False
|
||||||
|
' .BookFoldPrintingSheets = 1
|
||||||
|
' .GutterPos = wdGutterPosLeft
|
||||||
|
'End With
|
||||||
|
|
||||||
|
'MsgBox "после Selection.PageSetup.Orientation = " & Selection.PageSetup.Orientation
|
||||||
|
|
||||||
|
'If Selection.PageSetup.Orientation = wdOrientPortrait Then
|
||||||
|
' MsgBox "Портретная"
|
||||||
|
' Selection.PageSetup.Orientation = wdOrientLandscape
|
||||||
|
'Else
|
||||||
|
' MsgBox "Альбомная"
|
||||||
|
' Selection.PageSetup.Orientation = wdOrientPortrait
|
||||||
|
'End If
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -196,5 +229,156 @@ Dim CurrTbl As Table
|
|||||||
|
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
Sub ML_PicFormatter()
|
||||||
|
|
||||||
|
Dim PicWidth, PicHeight, PicWidthA4, PicHeightA4, PicWidthA3, PicHeightA3 As Single
|
||||||
|
|
||||||
|
'настройка размера картиное
|
||||||
|
'для а4
|
||||||
|
PicWidth = 15
|
||||||
|
PicHeight = 15
|
||||||
|
|
||||||
|
'для а4 альбомного
|
||||||
|
PicWidthA4 = 25
|
||||||
|
PicHeightA4 = 15
|
||||||
|
|
||||||
|
'для а3 альбомного
|
||||||
|
PicWidthA3 = 37
|
||||||
|
PicHeightA3 = 24
|
||||||
|
|
||||||
|
'определяем тип оъекта в выделении
|
||||||
|
'MsgBox "pic in selection = " & Selection.ShapeRange.Count
|
||||||
|
'MsgBox "pic in inline selection = " & Selection.InlineShapes.Count
|
||||||
|
|
||||||
|
' WdSelectionType =
|
||||||
|
' https://learn.microsoft.com/en-us/office/vba/api/word.wdselectiontype
|
||||||
|
'MsgBox "Selection.Type = " & Selection.Type
|
||||||
|
|
||||||
|
'определяем тип фигуры
|
||||||
|
' WdInlineShapeType =
|
||||||
|
' https://learn.microsoft.com/ru-ru/office/vba/api/word.wdinlineshapetype
|
||||||
|
'MsgBox "WdInlineShapeType = " & Selection.InlineShapes(1).Type
|
||||||
|
|
||||||
|
|
||||||
|
'проверка на выделение картинки
|
||||||
|
'wdSelectionInlineShape = 7 Inline shape
|
||||||
|
'MsgBox "выделено картинок = " & Selection.InlineShapes.Count
|
||||||
|
|
||||||
|
If Selection.InlineShapes.Count > 0 Then
|
||||||
|
'MsgBox "поехали форматировать"
|
||||||
|
|
||||||
|
'проверяем ориентацию листа
|
||||||
|
If Selection.PageSetup.Orientation = wdOrientLandscape Then
|
||||||
|
'альбомная, может быть А4 и А3
|
||||||
|
'MsgBox "Orientation = Landscape"
|
||||||
|
|
||||||
|
|
||||||
|
If Selection.PageSetup.PaperSize = 7 Then
|
||||||
|
'MsgBox ("A4")
|
||||||
|
PicWidth = PicWidthA4
|
||||||
|
PicHeight = PicHeightA4
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Selection.PageSetup.PaperSize = 6 Then
|
||||||
|
'MsgBox ("A3")
|
||||||
|
PicWidth = PicWidthA3
|
||||||
|
PicHeight = PicHeightA3
|
||||||
|
End If
|
||||||
|
|
||||||
|
'проверяем ширину картинки
|
||||||
|
'MsgBox "width = " & PointsToCentimeters(Selection.InlineShapes(1).Width) & " / " & PicWidth
|
||||||
|
If PointsToCentimeters(Selection.InlineShapes(1).Width) > PicWidth Then
|
||||||
|
'устанавливаем ширину в точках
|
||||||
|
Selection.InlineShapes(1).Width = CentimetersToPoints(PicWidth)
|
||||||
|
End If
|
||||||
|
|
||||||
|
'проверяем высоту картинки
|
||||||
|
'MsgBox "height = " & PointsToCentimeters(Selection.InlineShapes(1).Width) & " / " & PicHeight
|
||||||
|
If PointsToCentimeters(Selection.InlineShapes(1).Height) > PicHeight Then
|
||||||
|
'устанавливаем высоту в точках
|
||||||
|
Selection.InlineShapes(1).Height = CentimetersToPoints(PicHeight)
|
||||||
|
End If
|
||||||
|
|
||||||
|
Else 'orientation
|
||||||
|
'портретная - только для А4, проверяем только ширину
|
||||||
|
'MsgBox "Orientation = Portrait"
|
||||||
|
|
||||||
|
'проверяем ширину картинки
|
||||||
|
'MsgBox "width = " & PointsToCentimeters(Selection.InlineShapes(1).Width)
|
||||||
|
If PointsToCentimeters(Selection.InlineShapes(1).Width) > PicWidth Then
|
||||||
|
'устанавливаем ширину в точках
|
||||||
|
Selection.InlineShapes(1).Width = CentimetersToPoints(PicWidth)
|
||||||
|
End If
|
||||||
|
|
||||||
|
End If 'orientation
|
||||||
|
|
||||||
|
'выравниваем по центру
|
||||||
|
'Selection.InlineShapes(1).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
|
||||||
|
With Selection.InlineShapes(1).Range.ParagraphFormat
|
||||||
|
.Alignment = wdAlignParagraphCenter
|
||||||
|
.SpaceBeforeAuto = False
|
||||||
|
.SpaceAfterAuto = False
|
||||||
|
.FirstLineIndent = CentimetersToPoints(0)
|
||||||
|
End With
|
||||||
|
|
||||||
|
'применение стиля и вставка названия
|
||||||
|
'Selection.Style = ActiveDocument.Styles("???????")
|
||||||
|
'add autonumber + set style
|
||||||
|
'Selection.InsertCaption Label:="???????", TitleAutoText:="InsertCaption1", _
|
||||||
|
' Title:=" - ", Position:=wdCaptionPositionBelow, ExcludeLabel:=0
|
||||||
|
'Selection.Style = ActiveDocument.Styles("???????? ???????")
|
||||||
|
|
||||||
|
Selection.InlineShapes(1).Select
|
||||||
|
|
||||||
|
|
||||||
|
'Label = WdCaptionLabelID - https://learn.microsoft.com/ru-ru/office/vba/api/word.wdcaptionlabelid
|
||||||
|
'при испоьзовании WdCaptionLabelID вставляется английское название
|
||||||
|
'wdCaptionEquation = -3 формула
|
||||||
|
'wdCaptionFigure = -1 рисунок
|
||||||
|
'wdCaptionTable = -2 таблица
|
||||||
|
'Position = WdCaptionPosition - https://learn.microsoft.com/ru-ru/office/vba/api/word.wdcaptionposition
|
||||||
|
'wdCaptionPositionAbove = 0 до объекта
|
||||||
|
'wdCaptionPositionBelow = 1 после объекта
|
||||||
|
Selection.InsertCaption Label:="Рисунок", Title:=" - " ', Position:=wdCaptionPositionBelow
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Else 'нет картинок
|
||||||
|
MsgBox "Не выделена картинка!"
|
||||||
|
End If 'проверка на картинки
|
||||||
|
|
||||||
|
|
||||||
|
'устанавливаем ширину в точках
|
||||||
|
'Selection.InlineShapes(1).Width = CentimetersToPoints(15)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub ML_TestMacros()
|
||||||
|
|
||||||
|
MsgBox ("Хоба!")
|
||||||
|
|
||||||
|
MsgBox "Papersize = " & Selection.PageSetup.PaperSize
|
||||||
|
'wdPaperSize - https://learn.microsoft.com/en-us/office/vba/api/word.wdpapersize
|
||||||
|
'wdPaperA3 = 6
|
||||||
|
'wdPaperA4 = 7
|
||||||
|
|
||||||
|
If Selection.PageSetup.PaperSize = 7 Then
|
||||||
|
MsgBox ("A4")
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Selection.PageSetup.PaperSize = 6 Then
|
||||||
|
MsgBox ("A3")
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|||||||
23
README.md
23
README.md
@@ -7,21 +7,24 @@ C:\Users\[ИмяПользователя]\AppData\Roaming\Microsoft\Word\STARTUP
|
|||||||
|
|
||||||
|
|
||||||
## Текущий набор функций:
|
## Текущий набор функций:
|
||||||
1. Форматирование таблицы по ГОСТ
|
1. Форматирование таблицы по ГОСТ;
|
||||||
2. Добавление нового раздела после курсора с горизонтальным листом А4
|
2. Форматирование картинки со вставкой названия. Размер картинки уменьшается до определенного размера, который зависит от формата (а3/а4) и ориентации листа (портретный/альбомный);
|
||||||
3. Добавление нового раздела после курсора с горизонтальным листом А3
|
2. Добавление нового раздела после курсора с горизонтальным листом А4;
|
||||||
|
3. Добавление нового раздела после курсора с горизонтальным листом А3;
|
||||||
|
|
||||||
|
|
||||||
## Планируемые функции
|
## Планируемые функции
|
||||||
1. Форматироание картинки
|
1. Автоматическая установка расширения при открытии
|
||||||
2. Автоматическая установка расширения при открытии
|
2. Вставка штампов целиком и частями
|
||||||
3. Вставка штампов целиком и частями
|
3. Добавления ряда интересных функций из addin_wordtools
|
||||||
4. Добавления ряда интересных функций из addin_wordtools
|
4. Добавления ряда интересных функций из addin_macrotoolsword
|
||||||
5. Добавления ряда интересных функций из addin_macrotoolsword
|
5. вставка вертикальных листов как опция, выбор по выпадающему списку из кнопки
|
||||||
6. вставка вертикальных листов как опция, выбор по выпадающему списку из кнопки
|
6. Добавление подготовленных стилей в документ, чтобы форматирование картинки или таблицы происходило корректно. Изменение текущих стилей документа. Или приведение стилей к определенному шаблону.
|
||||||
7. Добавление подготовленных стилей в документ, чтобы форматирование картинки или таблицы происходило корректно. Изменение текущих стилей документа. Или приведение стилей к определенному шаблону.
|
|
||||||
|
|
||||||
## Планируемые доработки скриптов
|
## Планируемые доработки скриптов
|
||||||
1. Форматирование таблицы - автоматическое определение формата листа и подгон ширины под формат листа.
|
1. Форматирование таблицы - автоматическое определение формата листа и подгон ширины под формат листа.
|
||||||
2. Вставка горизонтального листа. После вставки горинзонтального листа следующие страницы превращаются также в горизонтальные. Надо сделать так чтобы вставлялся только один горизонтальный лист как раздел, а следующие разделы шли без изменения.
|
2. Вставка горизонтального листа. После вставки горинзонтального листа следующие страницы превращаются также в горизонтальные. Надо сделать так чтобы вставлялся только один горизонтальный лист как раздел, а следующие разделы шли без изменения.
|
||||||
3. Добавить в форматирование таблицы вставку названия
|
3. Добавить в форматирование таблицы вставку названия
|
||||||
|
|
||||||
|
## Выполненные доработки
|
||||||
|
1. Добавлена функция форматирования картинки со вставкой названия. Размер картинки уменьшается до определенного размера, который зависит от формата (а3/а4) и ориентации листа (портретный/альбомный);
|
||||||
@@ -10,7 +10,10 @@ End Sub
|
|||||||
|
|
||||||
'PicFormatter (элемент: button, атрибут: onAction), 2010+
|
'PicFormatter (элемент: button, атрибут: onAction), 2010+
|
||||||
Private Sub PicFormatter(control As IRibbonControl)
|
Private Sub PicFormatter(control As IRibbonControl)
|
||||||
MsgBox "Сработала процедура, заданная в onAction элемента " & control.ID
|
'MsgBox "Сработала процедура, заданная в onAction элемента " & control.ID
|
||||||
|
|
||||||
|
Call ML_PicFormatter
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
'AddListA4 (элемент: button, атрибут: onAction), 2010+
|
'AddListA4 (элемент: button, атрибут: onAction), 2010+
|
||||||
@@ -64,3 +67,8 @@ Private Sub AddPageNumber(control As IRibbonControl)
|
|||||||
MsgBox "Сработала процедура, заданная в onAction элемента " & control.ID
|
MsgBox "Сработала процедура, заданная в onAction элемента " & control.ID
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
'TestMacros (элемент: button, атрибут: onAction), 2010+
|
||||||
|
Private Sub TestMacros(control As IRibbonControl)
|
||||||
|
'MsgBox "Сработала процедура, заданная в onAction элемента " & control.ID
|
||||||
|
Call ML_TestMacros
|
||||||
|
End Sub
|
||||||
Reference in New Issue
Block a user