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

Вход

Регистрация

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

 

= Мир MS Excel/Центрирование фигуры по центру экрана - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Центрирование фигуры по центру экрана (Макросы/Sub)
Центрирование фигуры по центру экрана
yl3d Дата: Пятница, 13.10.2017, 20:21 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Доброго времени суток.
Уважаемые программисты - помогите разобраться.

У меня есть несколько гиперссылочных автофигур. Они располагаются в ячейке А1.
Можно заметить, что если щелкнуть сперва по зеленой фигуре, а затем по фиолетовой - то фиолетовая фигура будет не в центре экрана.
Но если потом щелкнуть по оранжевой фигуре - то фигура окажется строго в центре экрана.
То что переход с зеленой фигуры - на фиолетовую идет не по центру экрана - доставляет неудобства.

Как заставить при переходе на гиперссылочную фигуру - всегда центровать экран так, чтобы фигура - обязательно располагалась по центру?
(исключение - только если эта фигура стоит неподалеку от верхней границы (строка 1) или левой границы (столбец А)).

Я уже задавал этот вопрос на одном форуме, но там мне дали только код, который вроде бы как умеет центрировать экран по центру фигуры.
Но вот как его добавить в свой код - я не знаю.

[vba]
Код

With Windows(1).VisibleRange
    cellsX = .Cells.Left + .Cells.Width / 2
    cellsY = .Cells.Top + .Cells.Height / 2
End With
[/vba]
К сообщению приложен файл: 25475476.xls (51.5 Kb)
 
Ответить
СообщениеДоброго времени суток.
Уважаемые программисты - помогите разобраться.

У меня есть несколько гиперссылочных автофигур. Они располагаются в ячейке А1.
Можно заметить, что если щелкнуть сперва по зеленой фигуре, а затем по фиолетовой - то фиолетовая фигура будет не в центре экрана.
Но если потом щелкнуть по оранжевой фигуре - то фигура окажется строго в центре экрана.
То что переход с зеленой фигуры - на фиолетовую идет не по центру экрана - доставляет неудобства.

Как заставить при переходе на гиперссылочную фигуру - всегда центровать экран так, чтобы фигура - обязательно располагалась по центру?
(исключение - только если эта фигура стоит неподалеку от верхней границы (строка 1) или левой границы (столбец А)).

Я уже задавал этот вопрос на одном форуме, но там мне дали только код, который вроде бы как умеет центрировать экран по центру фигуры.
Но вот как его добавить в свой код - я не знаю.

[vba]
Код

With Windows(1).VisibleRange
    cellsX = .Cells.Left + .Cells.Width / 2
    cellsY = .Cells.Top + .Cells.Height / 2
End With
[/vba]

Автор - yl3d
Дата добавления - 13.10.2017 в 20:21
KuklP Дата: Пятница, 13.10.2017, 21:15 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеКросс:
http://www.planetaexcel.ru/forum....-ekrana

Автор - KuklP
Дата добавления - 13.10.2017 в 21:15
RAN Дата: Пятница, 13.10.2017, 21:26 | Сообщение № 3
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Sub Мяу()
    Dim r&, cl&
    Application.ScreenUpdating = False
    With ActiveWorkbook.Windows(1)
        .ScrollRow = ActiveSheet.Shapes("Шестиугольник 1").TopLeftCell.Row
        .ScrollColumn = ActiveSheet.Shapes("Шестиугольник 1").TopLeftCell.Column
        With .VisibleRange
            r = IIf(.Row - .Rows.Count / 2 < 1, 1, .Row - .Rows.Count / 2)
            cl = IIf(.Column - .Columns.Count / 2 < 1, 1, .Column - .Columns.Count / 2)
        End With
        .ScrollRow = r
        .ScrollColumn = cl
    End With
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Sub Мяу()
    Dim r&, cl&
    Application.ScreenUpdating = False
    With ActiveWorkbook.Windows(1)
        .ScrollRow = ActiveSheet.Shapes("Шестиугольник 1").TopLeftCell.Row
        .ScrollColumn = ActiveSheet.Shapes("Шестиугольник 1").TopLeftCell.Column
        With .VisibleRange
            r = IIf(.Row - .Rows.Count / 2 < 1, 1, .Row - .Rows.Count / 2)
            cl = IIf(.Column - .Columns.Count / 2 < 1, 1, .Column - .Columns.Count / 2)
        End With
        .ScrollRow = r
        .ScrollColumn = cl
    End With
End Sub
[/vba]

Автор - RAN
Дата добавления - 13.10.2017 в 21:26
yl3d Дата: Пятница, 13.10.2017, 21:41 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
RAN, спасибо.
Вроде бы все работает.
 
Ответить
СообщениеRAN, спасибо.
Вроде бы все работает.

Автор - yl3d
Дата добавления - 13.10.2017 в 21:41
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Центрирование фигуры по центру экрана (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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