Прошу помочь! В Word'е есть такие макросы: IndentChar, UnIndentChar — которые увеличивают или уменьшают отступ абзаца на ширину одного знака. То есть, при каждом выполнении макроса левая граница абзаца на знак сдвигается вправо или влево. А можно ли средствами VBA делать то же самое с правой границей абзаца? То есть, чтобы один макрос уменьшал отступ справа на ширину знака, а другой наоборот увеличивал. Как те макросы, которые я упомянул. Или, в крайнем случае, на полсантиметрика. Как бы такое намудрить? Когда я пробую просто записать такой макрос, сдвигая на чуток бегунок на линейке, то каждый раз устанавливается абсолютная последняя величина отступа. Вероятно, надо чтобы каким-то циклом макрос сдвигал бегунок каждый раз на какую-то величину, относительно предыдущего значения. Сам я даже не знаю, за какое свойство зацепиться. Есть, например, такие макросы: [vba]
Код
Sub МасштабПлюс1() 'Sub MyZoomIn(Allen Wyatt) Dim ZP As Integer ZP = Int(ActiveWindow.ActivePane.View.Zoom.Percentage * 1.01) If ZP > 500 Then ZP = 500 ActiveWindow.ActivePane.View.Zoom.Percentage = ZP End Sub
[/vba] [vba]
Код
Sub МасштабМинус1() 'Sub MyZoomIn(Allen Wyatt) Dim ZP As Integer ZP = Int(ActiveWindow.ActivePane.View.Zoom.Percentage / 1.01) If ZP < 10 Then ZP = 10 ActiveWindow.ActivePane.View.Zoom.Percentage = ZP End Sub
[/vba] Может быть, по такому типу что-нибудь возможно?
Прошу помочь! В Word'е есть такие макросы: IndentChar, UnIndentChar — которые увеличивают или уменьшают отступ абзаца на ширину одного знака. То есть, при каждом выполнении макроса левая граница абзаца на знак сдвигается вправо или влево. А можно ли средствами VBA делать то же самое с правой границей абзаца? То есть, чтобы один макрос уменьшал отступ справа на ширину знака, а другой наоборот увеличивал. Как те макросы, которые я упомянул. Или, в крайнем случае, на полсантиметрика. Как бы такое намудрить? Когда я пробую просто записать такой макрос, сдвигая на чуток бегунок на линейке, то каждый раз устанавливается абсолютная последняя величина отступа. Вероятно, надо чтобы каким-то циклом макрос сдвигал бегунок каждый раз на какую-то величину, относительно предыдущего значения. Сам я даже не знаю, за какое свойство зацепиться. Есть, например, такие макросы: [vba]
Код
Sub МасштабПлюс1() 'Sub MyZoomIn(Allen Wyatt) Dim ZP As Integer ZP = Int(ActiveWindow.ActivePane.View.Zoom.Percentage * 1.01) If ZP > 500 Then ZP = 500 ActiveWindow.ActivePane.View.Zoom.Percentage = ZP End Sub
[/vba] [vba]
Код
Sub МасштабМинус1() 'Sub MyZoomIn(Allen Wyatt) Dim ZP As Integer ZP = Int(ActiveWindow.ActivePane.View.Zoom.Percentage / 1.01) If ZP < 10 Then ZP = 10 ActiveWindow.ActivePane.View.Zoom.Percentage = ZP End Sub
[/vba] Может быть, по такому типу что-нибудь возможно?auto-teacher
auto-teacher
Сообщение отредактировал auto-teacher - Воскресенье, 28.06.2020, 22:35
krosav4ig. О, какое счастье! Мне это и было нужно! Только я не понял сперва, вот это: ".LeftIndent = 0" и "RightIndent = 0" и убрал. Без этого классно действовало с горячими клавишами! Была, правда, неувязка: в стилях отступы и выступы обычно в сантиметрах показываются, а у меня стало и в сантиметрах, и в знаках. Все равно я был очень доволен! Большое спасибо! ************************************** После первой радости пришла вторая. Покумекал, потыкал, глядя на подаренный код, и сделал опытным путем так: [vba]
Код
Sub ОтступСлеваПлюс() With Selection.ParagraphFormat .LeftIndent = .LeftIndent + 10 End With End Sub
[/vba] [vba]
Код
Sub ОтступСлеваМинус() With Selection.ParagraphFormat .LeftIndent = .LeftIndent - 10 End With End Sub
[/vba] [vba]
Код
Sub ОтступСправаПлюс() With Selection.ParagraphFormat .RightIndent = .RightIndent - 10 End With End Sub
[/vba] [vba]
Код
Sub ОтступСправаМинус() With Selection.ParagraphFormat .RightIndent = .RightIndent + 10 End With End Sub
[/vba] Теперь уж, хоть и не до конца понял как, но действует все вообще отлично: и на ленте отображаются отступы в сантиметрах. Еще раз - сэнк'ю вери матч, krosav4ig!
krosav4ig. О, какое счастье! Мне это и было нужно! Только я не понял сперва, вот это: ".LeftIndent = 0" и "RightIndent = 0" и убрал. Без этого классно действовало с горячими клавишами! Была, правда, неувязка: в стилях отступы и выступы обычно в сантиметрах показываются, а у меня стало и в сантиметрах, и в знаках. Все равно я был очень доволен! Большое спасибо! ************************************** После первой радости пришла вторая. Покумекал, потыкал, глядя на подаренный код, и сделал опытным путем так: [vba]
Код
Sub ОтступСлеваПлюс() With Selection.ParagraphFormat .LeftIndent = .LeftIndent + 10 End With End Sub
[/vba] [vba]
Код
Sub ОтступСлеваМинус() With Selection.ParagraphFormat .LeftIndent = .LeftIndent - 10 End With End Sub
[/vba] [vba]
Код
Sub ОтступСправаПлюс() With Selection.ParagraphFormat .RightIndent = .RightIndent - 10 End With End Sub
[/vba] [vba]
Код
Sub ОтступСправаМинус() With Selection.ParagraphFormat .RightIndent = .RightIndent + 10 End With End Sub
[/vba] Теперь уж, хоть и не до конца понял как, но действует все вообще отлично: и на ленте отображаются отступы в сантиметрах. Еще раз - сэнк'ю вери матч, krosav4ig!auto-teacher
auto-teacher
Сообщение отредактировал auto-teacher - Среда, 01.07.2020, 00:59