diff --git a/Excel_idea.md b/Excel_idea.md new file mode 100644 index 0000000..9a8b9cf --- /dev/null +++ b/Excel_idea.md @@ -0,0 +1,77 @@ + +## Идеи расширения для Excel +1. Поиск русских букв в латинице и наоборот +2. Кнопка переключения стиля сслык R1C1 на А1 и обратно +3. Объединение ячеек без потери текста и разъединение обратно +4. автоматическая установка расширения при открытии +Отображение скрытых строк +Иногда большие файлы Excel можно содержать скрытые строки для большей ясности И для лучшего удобства пользователей. Вот один макрос, который отобразит все строки из активной рабочей таблицы: + +Sub ShowHiddenRows() + Columns.EntireColumn.Hidden = False + Rows.EntireRow.Hidden = False +End Sub + +Удаление пустых строк и столбов +Пустые строки в Excel - может быть проблемой для обработки данных. Вот как избавиться от них: + +Sub DeleteEmptyRowsAndColumns() + 'Declare your variables. + Dim MyRange As Range + Dim iCounter As Long + 'Define the target Range. + Set MyRange = ActiveSheet.UsedRange + 'Start reverse looping through the range of Rows. + For iCounter = MyRange.Rows.Count To 1 Step -1 + 'If entire row is empty then delete it. + If Application.CountA(Rows(iCounter).EntireRow) = 0 Then + Rows(iCounter).Delete + 'Remove comment to See which are the empty rows + 'MsgBox "row " & iCounter & " is empty" + End If + 'Increment the counter down + Next iCounter + 'Step 6: Start reverse looping through the range of Columns. + For iCounter = MyRange.Columns.Count To 1 Step -1 + 'Step 7: If entire column is empty then delete it. + If Application.CountA(Columns(iCounter).EntireColumn) = 0 Then + Columns(iCounter).Delete + End If + 'Step 8: Increment the counter down + Next iCounter +End Sub + +транслитерация текста +Function Translit(Txt As String) As String + + Dim Rus As Variant + Rus = Array("а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", _ + "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", _ + "щ", "ъ", "ы", "ь", "э", "ю", "я", "А", "Б", "В", "Г", "Д", "Е", _ + "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", _ + "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я") + + Dim Eng As Variant + Eng = Array("a", "b", "v", "g", "d", "e", "jo", "zh", "z", "i", "j", _ + "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "kh", "ts", "ch", _ + "sh", "sch", "''", "y", "'", "e", "yu", "ya", "A", "B", "V", "G", "D", _ + "E", "JO", "ZH", "Z", "I", "J", "K", "L", "M", "N", "O", "P", "R", _ + "S", "T", "U", "F", "KH", "TS", "CH", "SH", "SCH", "''", "Y", "'", "E", "YU", "YA") + + For I = 1 To Len(Txt) + с = Mid(Txt, I, 1) + + flag = 0 + For J = 0 To 65 + If Rus(J) = с Then + outchr = Eng(J) + flag = 1 + Exit For + End If + Next J + If flag Then outstr = outstr & outchr Else outstr = outstr & с + Next I + + Translit = outstr + +End Function \ No newline at end of file diff --git a/MacrosList.bas b/MacrosList.bas index ddd11ac..30e0f6b 100644 --- a/MacrosList.bas +++ b/MacrosList.bas @@ -252,6 +252,17 @@ Dim CurrTbl As Table Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter 'MsgBox ("первая строка отформатирована") + 'MsgBox ("вставка заголовка") + '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:=wdCaptionPositionAbove + 'MsgBox ("Done!") 'MsgBox ("Готово!") @@ -395,13 +406,39 @@ End Sub Sub ML_AddStyle() -'Добавление стиля для названия рисунка -ActiveDocument.Styles.Add Name:="Название Рисунка", Type:= _ +'Добавление стилей: +'ГОСТ Обычный текст +'ГОСТ Название Рисунка +'ГОСТ Название Таблицы +' +'Добавление стилей маркированного и нумерованного списков идет через вызовы +'отдельных макросов, это нужно для того, чтобы коллекция стилей успевала обновляться + +'Добавление стиля ГОСТ Обычный текст +'ActiveDocument.Styles.Add Name:="ГОСТ Обычный текст", Type:= _ +' wdStyleTypeCharacter +' With ActiveDocument.Styles("ГОСТ Обычный текст").Font +' .Name = "Arial" +' .Size = 12 +' .Color = wdColorAutomatic +' End With +' With ActiveDocument.Styles("ГОСТ Обычный текст").Font +' With .Shading +' .Texture = wdTextureNone +' .ForegroundPatternColor = wdColorAutomatic +' .BackgroundPatternColor = wdColorAutomatic +' End With +' .Borders(1).LineStyle = wdLineStyleNone +' .Borders.Shadow = False +' End With + +'Добавление стиля ГОСТ Обычный текст +ActiveDocument.Styles.Add Name:="ГОСТ Обычный текст", Type:= _ wdStyleTypeParagraph - ActiveDocument.Styles("Название Рисунка").AutomaticallyUpdate = False - With ActiveDocument.Styles("Название Рисунка").Font + ActiveDocument.Styles("ГОСТ Обычный текст").AutomaticallyUpdate = False + With ActiveDocument.Styles("ГОСТ Обычный текст").Font .Name = "Arial" - .Size = 14 + .Size = 12 .Bold = False .Italic = False .Underline = wdUnderlineNone @@ -427,7 +464,92 @@ ActiveDocument.Styles.Add Name:="Название Рисунка", Type:= _ .StylisticSet = wdStylisticSetDefault .ContextualAlternates = 0 End With - With ActiveDocument.Styles("Название Рисунка").ParagraphFormat + With ActiveDocument.Styles("ГОСТ Обычный текст").ParagraphFormat + .LeftIndent = CentimetersToPoints(0) + .RightIndent = CentimetersToPoints(0) + .SpaceBefore = 0 + .SpaceBeforeAuto = False + .SpaceAfter = 0 + .SpaceAfterAuto = False + .LineSpacingRule = wdLineSpace1pt5 + .Alignment = wdAlignParagraphJustify + .WidowControl = True + .KeepWithNext = False + .KeepTogether = False + .PageBreakBefore = False + .NoLineNumber = False + .Hyphenation = True + .FirstLineIndent = CentimetersToPoints(1.5) + .OutlineLevel = wdOutlineLevelBodyText + .CharacterUnitLeftIndent = 0 + .CharacterUnitRightIndent = 0 + .CharacterUnitFirstLineIndent = 0 + .LineUnitBefore = 0 + .LineUnitAfter = 0 + .MirrorIndents = False + .TextboxTightWrap = wdTightNone + End With + ActiveDocument.Styles("ГОСТ Обычный текст"). _ + NoSpaceBetweenParagraphsOfSameStyle = True + ActiveDocument.Styles("ГОСТ Обычный текст").ParagraphFormat.TabStops. _ + ClearAll + With ActiveDocument.Styles("ГОСТ Обычный текст").ParagraphFormat + With .Shading + .Texture = wdTextureNone + .ForegroundPatternColor = wdColorAutomatic + .BackgroundPatternColor = wdColorAutomatic + End With + .Borders(wdBorderLeft).LineStyle = wdLineStyleNone + .Borders(wdBorderRight).LineStyle = wdLineStyleNone + .Borders(wdBorderTop).LineStyle = wdLineStyleNone + .Borders(wdBorderBottom).LineStyle = wdLineStyleNone + With .Borders + .DistanceFromTop = 1 + .DistanceFromLeft = 4 + .DistanceFromBottom = 1 + .DistanceFromRight = 4 + .Shadow = False + End With + End With + ActiveDocument.Styles("ГОСТ Обычный текст").LanguageID = wdRussian + ActiveDocument.Styles("ГОСТ Обычный текст").NoProofing = False + ActiveDocument.Styles("ГОСТ Обычный текст").Frame.Delete + + + +'Добавление стиля для названия рисунка +ActiveDocument.Styles.Add Name:="ГОСТ Название Рисунка", Type:= _ + wdStyleTypeParagraph + ActiveDocument.Styles("ГОСТ Название Рисунка").AutomaticallyUpdate = False + With ActiveDocument.Styles("ГОСТ Название Рисунка").Font + .Name = "Arial" + .Size = 12 + .Bold = False + .Italic = False + .Underline = wdUnderlineNone + .UnderlineColor = wdColorAutomatic + .StrikeThrough = False + .DoubleStrikeThrough = False + .Outline = False + .Emboss = False + .Shadow = False + .Hidden = False + .SmallCaps = False + .AllCaps = False + .Color = wdColorAutomatic + .Engrave = False + .Superscript = False + .Subscript = False + .Scaling = 100 + .Kerning = 0 + .Animation = wdAnimationNone + .Ligatures = wdLigaturesNone + .NumberSpacing = wdNumberSpacingDefault + .NumberForm = wdNumberFormDefault + .StylisticSet = wdStylisticSetDefault + .ContextualAlternates = 0 + End With + With ActiveDocument.Styles("ГОСТ Название Рисунка").ParagraphFormat .LeftIndent = CentimetersToPoints(0) .RightIndent = CentimetersToPoints(0) .SpaceBefore = 0 @@ -452,11 +574,11 @@ ActiveDocument.Styles.Add Name:="Название Рисунка", Type:= _ .MirrorIndents = False .TextboxTightWrap = wdTightNone End With - ActiveDocument.Styles("Название Рисунка"). _ + ActiveDocument.Styles("ГОСТ Название Рисунка"). _ NoSpaceBetweenParagraphsOfSameStyle = False - ActiveDocument.Styles("Название Рисунка").ParagraphFormat.TabStops. _ + ActiveDocument.Styles("ГОСТ Название Рисунка").ParagraphFormat.TabStops. _ ClearAll - With ActiveDocument.Styles("Название Рисунка").ParagraphFormat + With ActiveDocument.Styles("ГОСТ Название Рисунка").ParagraphFormat With .Shading .Texture = wdTextureNone .ForegroundPatternColor = wdColorAutomatic @@ -474,17 +596,17 @@ ActiveDocument.Styles.Add Name:="Название Рисунка", Type:= _ .Shadow = False End With End With - ActiveDocument.Styles("Название Рисунка").LanguageID = wdRussian - ActiveDocument.Styles("Название Рисунка").NoProofing = False - ActiveDocument.Styles("Название Рисунка").Frame.Delete + ActiveDocument.Styles("ГОСТ Название Рисунка").LanguageID = wdRussian + ActiveDocument.Styles("ГОСТ Название Рисунка").NoProofing = False + ActiveDocument.Styles("ГОСТ Название Рисунка").Frame.Delete 'Добавление стиля для названия таблицы -ActiveDocument.Styles.Add Name:="Название Таблицы", Type:= _ +ActiveDocument.Styles.Add Name:="ГОСТ Название Таблицы", Type:= _ wdStyleTypeParagraph - ActiveDocument.Styles("Название Таблицы").AutomaticallyUpdate = False - With ActiveDocument.Styles("Название Таблицы").Font + ActiveDocument.Styles("ГОСТ Название Таблицы").AutomaticallyUpdate = False + With ActiveDocument.Styles("ГОСТ Название Таблицы").Font .Name = "Arial" - .Size = 14 + .Size = 12 .Bold = False .Italic = False .Underline = wdUnderlineNone @@ -510,7 +632,7 @@ ActiveDocument.Styles.Add Name:="Название Таблицы", Type:= _ .StylisticSet = wdStylisticSetDefault .ContextualAlternates = 0 End With - With ActiveDocument.Styles("Название Таблицы").ParagraphFormat + With ActiveDocument.Styles("ГОСТ Название Таблицы").ParagraphFormat .LeftIndent = CentimetersToPoints(0) .RightIndent = CentimetersToPoints(0) .SpaceBefore = 0 @@ -535,10 +657,10 @@ ActiveDocument.Styles.Add Name:="Название Таблицы", Type:= _ .MirrorIndents = False .TextboxTightWrap = wdTightNone End With - ActiveDocument.Styles("Название Таблицы"). _ + ActiveDocument.Styles("ГОСТ Название Таблицы"). _ NoSpaceBetweenParagraphsOfSameStyle = False - ActiveDocument.Styles("Название Таблицы").ParagraphFormat.TabStops.ClearAll - With ActiveDocument.Styles("Название Таблицы").ParagraphFormat + ActiveDocument.Styles("ГОСТ Название Таблицы").ParagraphFormat.TabStops.ClearAll + With ActiveDocument.Styles("ГОСТ Название Таблицы").ParagraphFormat With .Shading .Texture = wdTextureNone .ForegroundPatternColor = wdColorAutomatic @@ -556,14 +678,439 @@ ActiveDocument.Styles.Add Name:="Название Таблицы", Type:= _ .Shadow = False End With End With - ActiveDocument.Styles("Название Таблицы").LanguageID = wdRussian - ActiveDocument.Styles("Название Таблицы").NoProofing = False - ActiveDocument.Styles("Название Таблицы").Frame.Delete + ActiveDocument.Styles("ГОСТ Название Таблицы").LanguageID = wdRussian + ActiveDocument.Styles("ГОСТ Название Таблицы").NoProofing = False + ActiveDocument.Styles("ГОСТ Название Таблицы").Frame.Delete + + Selection.ClearFormatting +'добавление стиля нумерованного списка +Call ML_AddNumList + Selection.ClearFormatting +'добавление стиля маркированного списка +Call ML_AddMarkerList + Selection.ClearFormatting + + + +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 + + MsgBox "Selection.Type = " & Selection.Type + + + +End Sub + +Sub ML_AddNumList() +'Добавление стиля нумерованного списка + ActiveDocument.Styles.Add Name:="ГОСТ Список цифра", Type:= _ + wdStyleTypeParagraph + With ActiveDocument.Styles("ГОСТ Список цифра") + .AutomaticallyUpdate = False + .BaseStyle = "ГОСТ Обычный текст" + .NextParagraphStyle = "ГОСТ Список цифра" + End With + With ActiveDocument.Styles("ГОСТ Список цифра").Font + .Name = "Arial" + .Size = 12 + .Bold = False + .Italic = False + .Underline = wdUnderlineNone + .UnderlineColor = wdColorAutomatic + .StrikeThrough = False + .DoubleStrikeThrough = False + .Outline = False + .Emboss = False + .Shadow = False + .Hidden = False + .SmallCaps = False + .AllCaps = False + .Color = wdColorAutomatic + .Engrave = False + .Superscript = False + .Subscript = False + .Scaling = 100 + .Kerning = 0 + .Animation = wdAnimationNone + .Ligatures = wdLigaturesNone + .NumberSpacing = wdNumberSpacingDefault + .NumberForm = wdNumberFormDefault + .StylisticSet = wdStylisticSetDefault + .ContextualAlternates = 0 + End With + With ActiveDocument.Styles("ГОСТ Список цифра").ParagraphFormat + .LeftIndent = CentimetersToPoints(0) + .RightIndent = CentimetersToPoints(0) + .SpaceBefore = 0 + .SpaceBeforeAuto = False + .SpaceAfter = 0 + .SpaceAfterAuto = False + .LineSpacingRule = wdLineSpaceSingle + .Alignment = wdAlignParagraphLeft + .WidowControl = True + .KeepWithNext = False + .KeepTogether = False + .PageBreakBefore = False + .NoLineNumber = False + .Hyphenation = True + .FirstLineIndent = CentimetersToPoints(0) + .OutlineLevel = wdOutlineLevelBodyText + .CharacterUnitLeftIndent = 0 + .CharacterUnitRightIndent = 0 + .CharacterUnitFirstLineIndent = 0 + .LineUnitBefore = 0 + .LineUnitAfter = 0 + .MirrorIndents = False + .TextboxTightWrap = wdTightNone + End With + ActiveDocument.Styles("ГОСТ Список цифра"). _ + NoSpaceBetweenParagraphsOfSameStyle = False + ActiveDocument.Styles("ГОСТ Список цифра").ParagraphFormat.TabStops. _ + ClearAll + With ActiveDocument.Styles("ГОСТ Список цифра").ParagraphFormat + With .Shading + .Texture = wdTextureNone + .ForegroundPatternColor = wdColorAutomatic + .BackgroundPatternColor = wdColorAutomatic + End With + .Borders(wdBorderLeft).LineStyle = wdLineStyleNone + .Borders(wdBorderRight).LineStyle = wdLineStyleNone + .Borders(wdBorderTop).LineStyle = wdLineStyleNone + .Borders(wdBorderBottom).LineStyle = wdLineStyleNone + With .Borders + .DistanceFromTop = 1 + .DistanceFromLeft = 4 + .DistanceFromBottom = 1 + .DistanceFromRight = 4 + .Shadow = False + End With + End With + ActiveDocument.Styles("ГОСТ Список цифра").LanguageID = wdRussian + ActiveDocument.Styles("ГОСТ Список цифра").NoProofing = False + ActiveDocument.Styles("ГОСТ Список цифра").Frame.Delete + + + With ListGalleries(wdOutlineNumberGallery).ListTemplates(2).ListLevels(1) + .NumberFormat = "%1" + .TrailingCharacter = wdTrailingSpace + .NumberStyle = wdListNumberStyleArabic + .NumberPosition = CentimetersToPoints(1.25) + .Alignment = wdListLevelAlignLeft + .TextPosition = CentimetersToPoints(0) + .TabPosition = wdUndefined + .ResetOnHigher = 0 + .StartAt = 1 + With .Font + .Bold = wdUndefined + .Italic = wdUndefined + .StrikeThrough = wdUndefined + .Subscript = wdUndefined + .Superscript = wdUndefined + .Shadow = wdUndefined + .Outline = wdUndefined + .Emboss = wdUndefined + .Engrave = wdUndefined + .AllCaps = wdUndefined + .Hidden = wdUndefined + .Underline = wdUndefined + .Color = wdUndefined + .Size = wdUndefined + .Animation = wdUndefined + .DoubleStrikeThrough = wdUndefined + .Name = "" + End With + .LinkedStyle = "ГОСТ Список цифра" + End With + With ListGalleries(wdOutlineNumberGallery).ListTemplates(2).ListLevels(2) + .NumberFormat = "%1.%2" + .TrailingCharacter = wdTrailingSpace + .NumberStyle = wdListNumberStyleArabic + .NumberPosition = CentimetersToPoints(1.25) + .Alignment = wdListLevelAlignLeft + .TextPosition = CentimetersToPoints(0) + .TabPosition = wdUndefined + .ResetOnHigher = 1 + .StartAt = 1 + With .Font + .Bold = wdUndefined + .Italic = wdUndefined + .StrikeThrough = wdUndefined + .Subscript = wdUndefined + .Superscript = wdUndefined + .Shadow = wdUndefined + .Outline = wdUndefined + .Emboss = wdUndefined + .Engrave = wdUndefined + .AllCaps = wdUndefined + .Hidden = wdUndefined + .Underline = wdUndefined + .Color = wdUndefined + .Size = wdUndefined + .Animation = wdUndefined + .DoubleStrikeThrough = wdUndefined + .Name = "" + End With + .LinkedStyle = "" + End With + With ListGalleries(wdOutlineNumberGallery).ListTemplates(2).ListLevels(3) + .NumberFormat = "%1.%2.%3" + .TrailingCharacter = wdTrailingSpace + .NumberStyle = wdListNumberStyleArabic + .NumberPosition = CentimetersToPoints(1.25) + .Alignment = wdListLevelAlignLeft + .TextPosition = CentimetersToPoints(0) + .TabPosition = wdUndefined + .ResetOnHigher = 2 + .StartAt = 1 + With .Font + .Bold = wdUndefined + .Italic = wdUndefined + .StrikeThrough = wdUndefined + .Subscript = wdUndefined + .Superscript = wdUndefined + .Shadow = wdUndefined + .Outline = wdUndefined + .Emboss = wdUndefined + .Engrave = wdUndefined + .AllCaps = wdUndefined + .Hidden = wdUndefined + .Underline = wdUndefined + .Color = wdUndefined + .Size = wdUndefined + .Animation = wdUndefined + .DoubleStrikeThrough = wdUndefined + .Name = "" + End With + .LinkedStyle = "" + End With + With ListGalleries(wdOutlineNumberGallery).ListTemplates(2).ListLevels(4) + .NumberFormat = "%1.%2.%3.%4" + .TrailingCharacter = wdTrailingSpace + .NumberStyle = wdListNumberStyleArabic + .NumberPosition = CentimetersToPoints(1.25) + .Alignment = wdListLevelAlignLeft + .TextPosition = CentimetersToPoints(0) + .TabPosition = wdUndefined + .ResetOnHigher = 3 + .StartAt = 1 + With .Font + .Bold = wdUndefined + .Italic = wdUndefined + .StrikeThrough = wdUndefined + .Subscript = wdUndefined + .Superscript = wdUndefined + .Shadow = wdUndefined + .Outline = wdUndefined + .Emboss = wdUndefined + .Engrave = wdUndefined + .AllCaps = wdUndefined + .Hidden = wdUndefined + .Underline = wdUndefined + .Color = wdUndefined + .Size = wdUndefined + .Animation = wdUndefined + .DoubleStrikeThrough = wdUndefined + .Name = "" + End With + .LinkedStyle = "" + End With + With ListGalleries(wdOutlineNumberGallery).ListTemplates(2).ListLevels(5) + .NumberFormat = "%1.%2.%3.%4.%5" + .TrailingCharacter = wdTrailingSpace + .NumberStyle = wdListNumberStyleArabic + .NumberPosition = CentimetersToPoints(1.25) + .Alignment = wdListLevelAlignLeft + .TextPosition = CentimetersToPoints(0) + .TabPosition = wdUndefined + .ResetOnHigher = 4 + .StartAt = 1 + With .Font + .Bold = wdUndefined + .Italic = wdUndefined + .StrikeThrough = wdUndefined + .Subscript = wdUndefined + .Superscript = wdUndefined + .Shadow = wdUndefined + .Outline = wdUndefined + .Emboss = wdUndefined + .Engrave = wdUndefined + .AllCaps = wdUndefined + .Hidden = wdUndefined + .Underline = wdUndefined + .Color = wdUndefined + .Size = wdUndefined + .Animation = wdUndefined + .DoubleStrikeThrough = wdUndefined + .Name = "" + End With + .LinkedStyle = "" + End With + With ListGalleries(wdOutlineNumberGallery).ListTemplates(2).ListLevels(6) + .NumberFormat = "%1.%2.%3.%4.%5.%6" + .TrailingCharacter = wdTrailingSpace + .NumberStyle = wdListNumberStyleArabic + .NumberPosition = CentimetersToPoints(1.25) + .Alignment = wdListLevelAlignLeft + .TextPosition = CentimetersToPoints(0) + .TabPosition = wdUndefined + .ResetOnHigher = 5 + .StartAt = 1 + With .Font + .Bold = wdUndefined + .Italic = wdUndefined + .StrikeThrough = wdUndefined + .Subscript = wdUndefined + .Superscript = wdUndefined + .Shadow = wdUndefined + .Outline = wdUndefined + .Emboss = wdUndefined + .Engrave = wdUndefined + .AllCaps = wdUndefined + .Hidden = wdUndefined + .Underline = wdUndefined + .Color = wdUndefined + .Size = wdUndefined + .Animation = wdUndefined + .DoubleStrikeThrough = wdUndefined + .Name = "" + End With + .LinkedStyle = "" + End With + With ListGalleries(wdOutlineNumberGallery).ListTemplates(2).ListLevels(7) + .NumberFormat = "%1.%2.%3.%4.%5.%6.%7" + .TrailingCharacter = wdTrailingSpace + .NumberStyle = wdListNumberStyleArabic + .NumberPosition = CentimetersToPoints(1.25) + .Alignment = wdListLevelAlignLeft + .TextPosition = CentimetersToPoints(0) + .TabPosition = wdUndefined + .ResetOnHigher = 6 + .StartAt = 1 + With .Font + .Bold = wdUndefined + .Italic = wdUndefined + .StrikeThrough = wdUndefined + .Subscript = wdUndefined + .Superscript = wdUndefined + .Shadow = wdUndefined + .Outline = wdUndefined + .Emboss = wdUndefined + .Engrave = wdUndefined + .AllCaps = wdUndefined + .Hidden = wdUndefined + .Underline = wdUndefined + .Color = wdUndefined + .Size = wdUndefined + .Animation = wdUndefined + .DoubleStrikeThrough = wdUndefined + .Name = "" + End With + .LinkedStyle = "" + End With + With ListGalleries(wdOutlineNumberGallery).ListTemplates(2).ListLevels(8) + .NumberFormat = "%1.%2.%3.%4.%5.%6.%7.%8" + .TrailingCharacter = wdTrailingSpace + .NumberStyle = wdListNumberStyleArabic + .NumberPosition = CentimetersToPoints(1.25) + .Alignment = wdListLevelAlignLeft + .TextPosition = CentimetersToPoints(0) + .TabPosition = wdUndefined + .ResetOnHigher = 7 + .StartAt = 1 + With .Font + .Bold = wdUndefined + .Italic = wdUndefined + .StrikeThrough = wdUndefined + .Subscript = wdUndefined + .Superscript = wdUndefined + .Shadow = wdUndefined + .Outline = wdUndefined + .Emboss = wdUndefined + .Engrave = wdUndefined + .AllCaps = wdUndefined + .Hidden = wdUndefined + .Underline = wdUndefined + .Color = wdUndefined + .Size = wdUndefined + .Animation = wdUndefined + .DoubleStrikeThrough = wdUndefined + .Name = "" + End With + .LinkedStyle = "" + End With + With ListGalleries(wdOutlineNumberGallery).ListTemplates(2).ListLevels(9) + .NumberFormat = "%1.%2.%3.%4.%5.%6.%7.%8.%9" + .TrailingCharacter = wdTrailingSpace + .NumberStyle = wdListNumberStyleArabic + .NumberPosition = CentimetersToPoints(1.25) + .Alignment = wdListLevelAlignLeft + .TextPosition = CentimetersToPoints(0) + .TabPosition = wdUndefined + .ResetOnHigher = 8 + .StartAt = 1 + With .Font + .Bold = wdUndefined + .Italic = wdUndefined + .StrikeThrough = wdUndefined + .Subscript = wdUndefined + .Superscript = wdUndefined + .Shadow = wdUndefined + .Outline = wdUndefined + .Emboss = wdUndefined + .Engrave = wdUndefined + .AllCaps = wdUndefined + .Hidden = wdUndefined + .Underline = wdUndefined + .Color = wdUndefined + .Size = wdUndefined + .Animation = wdUndefined + .DoubleStrikeThrough = wdUndefined + .Name = "" + End With + .LinkedStyle = "" + End With + ListGalleries(wdOutlineNumberGallery).ListTemplates(2).Name = "NameDigit" + Selection.Range.ListFormat.ApplyListTemplateWithLevel ListTemplate:=ListGalleries(wdOutlineNumberGallery).ListTemplates(2) + 'ListGalleries(wdOutlineNumberGallery).ListTemplates (2), _ + 'ContinuePreviousList:=False, ApplyTo:=wdListApplyToWholeList, _ + 'DefaultListBehavior:=wdWord10ListBehavior + + ActiveDocument.Styles("ГОСТ Список цифра").LanguageID = wdRussian + ActiveDocument.Styles("ГОСТ Список цифра").NoProofing = False + ActiveDocument.Styles("ГОСТ Список цифра").Frame.Delete + + 'Selection.ClearFormatting + +End Sub + +Sub ML_AddMarkerList() + 'Добавление стиля маркированного списка ActiveDocument.Styles.Add Name:="ГОСТ Список маркер (-)", Type:= _ wdStyleTypeParagraph - ActiveDocument.Styles("ГОСТ Список маркер (-)").AutomaticallyUpdate = _ - False + + With ActiveDocument.Styles("ГОСТ Список маркер (-)") + .AutomaticallyUpdate = False + .BaseStyle = "ГОСТ Обычный текст" + .NextParagraphStyle = "ГОСТ Список маркер (-)" + End With With ActiveDocument.Styles("ГОСТ Список маркер (-)").Font .Name = "Arial" .Size = 12 @@ -639,14 +1186,14 @@ ActiveDocument.Styles.Add Name:="ГОСТ Список маркер (-)", Type:= .Shadow = False End With End With - ActiveDocument.Styles("ГОСТ Список маркер (-)").LanguageID = wdEnglishUS - ActiveDocument.Styles("ГОСТ Список маркер (-)").NoProofing = False - ActiveDocument.Styles("ГОСТ Список маркер (-)").Frame.Delete - Selection.MoveUp Unit:=wdLine, Count:=4 - Selection.MoveDown Unit:=wdLine, Count:=2 - Selection.MoveUp Unit:=wdLine, Count:=3 - Selection.MoveLeft Unit:=wdCharacter, Count:=27 - Selection.MoveDown Unit:=wdLine, Count:=10, Extend:=wdExtend + 'ActiveDocument.Styles("ГОСТ Список маркер (-)").LanguageID = wdEnglishUS + 'ActiveDocument.Styles("ГОСТ Список маркер (-)").NoProofing = False + 'ActiveDocument.Styles("ГОСТ Список маркер (-)").Frame.Delete + ''Selection.MoveUp Unit:=wdLine, Count:=4 + ''Selection.MoveDown Unit:=wdLine, Count:=2 + ''Selection.MoveUp Unit:=wdLine, Count:=3 + ''Selection.MoveLeft Unit:=wdCharacter, Count:=27 + ''Selection.MoveDown Unit:=wdLine, Count:=10, Extend:=wdExtend With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(1) .NumberFormat = "-" .TrailingCharacter = wdTrailingSpace @@ -926,35 +1473,16 @@ ActiveDocument.Styles.Add Name:="ГОСТ Список маркер (-)", Type:= End With .LinkedStyle = "" End With - ListGalleries(wdOutlineNumberGallery).ListTemplates(1).Name = "" - Selection.Range.ListFormat.ApplyListTemplateWithLevel ListTemplate:= _ - ListGalleries(wdOutlineNumberGallery).ListTemplates(1), _ - ContinuePreviousList:=False, ApplyTo:=wdListApplyToWholeList, _ - DefaultListBehavior:=wdWord10ListBehavior + ListGalleries(wdOutlineNumberGallery).ListTemplates(1).Name = "NameMinus" + Selection.Range.ListFormat.ApplyListTemplateWithLevel ListTemplate:=ListGalleries(wdOutlineNumberGallery).ListTemplates(1) + 'ListGalleries(wdOutlineNumberGallery).ListTemplates (1), _ + 'ContinuePreviousList:=False, ApplyTo:=wdListApplyToWholeList, _ + 'DefaultListBehavior:=wdWord10ListBehavior + ActiveDocument.Styles("ГОСТ Список маркер (-)").LanguageID = wdEnglishUS + ActiveDocument.Styles("ГОСТ Список маркер (-)").NoProofing = False + ActiveDocument.Styles("ГОСТ Список маркер (-)").Frame.Delete + +'Selection.ClearFormatting -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 63fcee7..42ec2a2 100644 --- a/README.md +++ b/README.md @@ -12,30 +12,37 @@ C:\Users\[ИмяПользователя]\AppData\Roaming\Microsoft\Word\STARTUP 3. Добавление нового раздела после курсора с горизонтальным листом А4; 4. Добавление нового раздела после курсора с вертикальным листом А4; 5. Добавление нового раздела после курсора с горизонтальным листом А3; +6. Добавление подготовленных стилей в документ, чтобы форматирование картинки или таблицы происходило корректно, т.к. макросы форматирования картинок и таблиц ссылаются на определенные стили. Название доавляемых стилей в виде "ГОСТ Основной текст", "ГОСТ Название рисунка", итд. Необходимые стили: + 6.1. Обычный текст - ок. + 6.2. Название рисунка - ок. + 6.3. Название таблицы - ок. + 6.4. Нумерованый многоуровневый список - ок. + 6.5. Маркированый многоуровневый список - ок. + ## Планируемые функции -1. Автоматическая установка расширения при открытии -2. Вставка штампов целиком и частями -3. Добавления ряда интересных функций из addin_wordtools -4. Добавления ряда интересных функций из addin_macrotoolsword -5. Добавление подготовленных стилей в документ, чтобы форматирование картинки или таблицы происходило корректно. Изменение текущих стилей документа. Или приведение стилей к определенному шаблону. Название стилей в виде "ГОСТ Основной текст", "ГОСТ Название рисунка", итд. Необходимые стили: - 5.1. Основной текст - ок - 5.2. Название рисунка - ок - 5.3. Название таблицы - ок - 5.4. Нумерованый многоуровневый список - 5.5. Маркированый многоуровневый список - ок - 5.6. Обычный текст. Шрифт, размер, цвет текста, без абзацного отступа. На его основе должны строится остальные стили. +1. Копирование стилей в шаблон пользователя Normal.dot через StyleOrganizer +2. Автоматическая установка расширения при открытии +3. Вставка штампов целиком и частями +4. Добавления ряда интересных функций из addin_wordtools +5. Добавления ряда интересных функций из addin_macrotoolsword + ## Планируемые доработки скриптов 1. Форматирование таблицы - автоматическое определение формата листа и подгон ширины под формат листа. 2. Добавить в форматирование таблицы вставку названия 3. Применение стиля к насзванию рисунка и названию таблицы +4. Проверка наличия стиля для названия рисунка и таблицы ## Changelog 1. Добавлена функция форматирования картинки со вставкой названия. Размер картинки уменьшается до определенного размера, который зависит от формата (а3/а4) и ориентации листа (портретный/альбомный); 2. Вставка вертикального А4 как нового раздела после курсора. Релизовано как SplitButton 3. Вставка горизонтального листа. После вставки горинзонтального листа следующие страницы превращаются также в горизонтальные. Надо сделать так чтобы вставлялся только один горизонтальный лист как раздел, а следующие разделы шли без изменения. -4. Добавлена вставка стилей: Основной текст, Название руисунка, Название таблици, Маркированный многоуровневый (-) \ No newline at end of file +4. 2025.07.04. Добавлена вставка стилей: "Основной текст", "Название руисунка", "Название таблицы", "Маркированный многоуровневый (-)", "Нумерованный Многоуровневый (-)" + + + +