Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Макрос для отступа абзаца справа на ширину знака - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Макрос для отступа абзаца справа на ширину знака
auto-teacher Дата: Воскресенье, 28.06.2020, 01:11 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Прошу помочь!
В 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 - Воскресенье, 28.06.2020, 22:35
 
Ответить
СообщениеПрошу помочь!
В 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
Дата добавления - 28.06.2020 в 01:11
krosav4ig Дата: Вторник, 30.06.2020, 21:43 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Отступ слева
увеличить на 1 символ
[vba]
Код
With Selection.ParagraphFormat
    .CharacterUnitLeftIndent = .CharacterUnitLeftIndent + 1
    .LeftIndent = 0
End With
[/vba]

Отступ справа
увеличить на 1 символ
[vba]
Код
With Selection.ParagraphFormat
    .CharacterUnitRightIndent = .CharacterUnitRightIndent + 1
    .RightIndent = 0
End With
[/vba]

уменьшить на 1 символ - заменить + на -


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Вторник, 30.06.2020, 21:46
 
Ответить
СообщениеОтступ слева
увеличить на 1 символ
[vba]
Код
With Selection.ParagraphFormat
    .CharacterUnitLeftIndent = .CharacterUnitLeftIndent + 1
    .LeftIndent = 0
End With
[/vba]

Отступ справа
увеличить на 1 символ
[vba]
Код
With Selection.ParagraphFormat
    .CharacterUnitRightIndent = .CharacterUnitRightIndent + 1
    .RightIndent = 0
End With
[/vba]

уменьшить на 1 символ - заменить + на -

Автор - krosav4ig
Дата добавления - 30.06.2020 в 21:43
auto-teacher Дата: Вторник, 30.06.2020, 23:03 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
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 - Среда, 01.07.2020, 00:59
 
Ответить
Сообщение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
Дата добавления - 30.06.2020 в 23:03
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!