From b403010d5461572c74f6cab8e60043c61ccd5ed0 Mon Sep 17 00:00:00 2001 From: zbronik Date: Sat, 17 May 2025 22:39:44 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=B0=D1=80=D1=82?= =?UTF-8?q?=D0=B8=D0=BD=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gostomizer.dotm | Bin 63635 -> 71949 bytes MacrosList.bas | 324 ++++++++++++++++++++++++++++++++++---------- README.md | 25 ++-- RibbonCallbacks.bas | 10 +- 4 files changed, 277 insertions(+), 82 deletions(-) diff --git a/Gostomizer.dotm b/Gostomizer.dotm index 44716b4d795e4edd126058de53b0ef7779bab369..6c02d12b5ace76d907f7dcb8e0274b6f4991d1f2 100644 GIT binary patch delta 24563 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 diff --git a/MacrosList.bas b/MacrosList.bas index ca501aa..10a16f8 100644 --- a/MacrosList.bas +++ b/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() 'for debug '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 - .LineNumbering.Active = False - .Orientation = wdOrientPortrait + .PaperSize = wdPaperA4 + .Orientation = wdOrientLandscape .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) - .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 + '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 "Портретная" - Selection.PageSetup.Orientation = wdOrientLandscape - Else - MsgBox "Альбомная" - Selection.PageSetup.Orientation = wdOrientPortrait - End If + +End Sub + +Sub ML_AddListA3() + 'for debug + 'MsgBox "Запуск функции вставки листа А3" + '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 @@ -196,5 +229,156 @@ Dim CurrTbl As Table 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 diff --git a/README.md b/README.md index b4acff2..39eca15 100644 --- a/README.md +++ b/README.md @@ -7,21 +7,24 @@ C:\Users\[ИмяПользователя]\AppData\Roaming\Microsoft\Word\STARTUP ## Текущий набор функций: -1. Форматирование таблицы по ГОСТ -2. Добавление нового раздела после курсора с горизонтальным листом А4 -3. Добавление нового раздела после курсора с горизонтальным листом А3 +1. Форматирование таблицы по ГОСТ; +2. Форматирование картинки со вставкой названия. Размер картинки уменьшается до определенного размера, который зависит от формата (а3/а4) и ориентации листа (портретный/альбомный); +2. Добавление нового раздела после курсора с горизонтальным листом А4; +3. Добавление нового раздела после курсора с горизонтальным листом А3; ## Планируемые функции -1. Форматироание картинки -2. Автоматическая установка расширения при открытии -3. Вставка штампов целиком и частями -4. Добавления ряда интересных функций из addin_wordtools -5. Добавления ряда интересных функций из addin_macrotoolsword -6. вставка вертикальных листов как опция, выбор по выпадающему списку из кнопки -7. Добавление подготовленных стилей в документ, чтобы форматирование картинки или таблицы происходило корректно. Изменение текущих стилей документа. Или приведение стилей к определенному шаблону. +1. Автоматическая установка расширения при открытии +2. Вставка штампов целиком и частями +3. Добавления ряда интересных функций из addin_wordtools +4. Добавления ряда интересных функций из addin_macrotoolsword +5. вставка вертикальных листов как опция, выбор по выпадающему списку из кнопки +6. Добавление подготовленных стилей в документ, чтобы форматирование картинки или таблицы происходило корректно. Изменение текущих стилей документа. Или приведение стилей к определенному шаблону. ## Планируемые доработки скриптов 1. Форматирование таблицы - автоматическое определение формата листа и подгон ширины под формат листа. 2. Вставка горизонтального листа. После вставки горинзонтального листа следующие страницы превращаются также в горизонтальные. Надо сделать так чтобы вставлялся только один горизонтальный лист как раздел, а следующие разделы шли без изменения. -3. Добавить в форматирование таблицы вставку названия \ No newline at end of file +3. Добавить в форматирование таблицы вставку названия + +## Выполненные доработки +1. Добавлена функция форматирования картинки со вставкой названия. Размер картинки уменьшается до определенного размера, который зависит от формата (а3/а4) и ориентации листа (портретный/альбомный); \ No newline at end of file diff --git a/RibbonCallbacks.bas b/RibbonCallbacks.bas index 1b17a39..2471d74 100644 --- a/RibbonCallbacks.bas +++ b/RibbonCallbacks.bas @@ -10,7 +10,10 @@ End Sub 'PicFormatter (элемент: button, атрибут: onAction), 2010+ Private Sub PicFormatter(control As IRibbonControl) - MsgBox "Сработала процедура, заданная в onAction элемента " & control.ID + 'MsgBox "Сработала процедура, заданная в onAction элемента " & control.ID + + Call ML_PicFormatter + End Sub 'AddListA4 (элемент: button, атрибут: onAction), 2010+ @@ -64,3 +67,8 @@ Private Sub AddPageNumber(control As IRibbonControl) MsgBox "Сработала процедура, заданная в onAction элемента " & control.ID End Sub +'TestMacros (элемент: button, атрибут: onAction), 2010+ +Private Sub TestMacros(control As IRibbonControl) + 'MsgBox "Сработала процедура, заданная в onAction элемента " & control.ID + Call ML_TestMacros +End Sub \ No newline at end of file