|
Excel 2010 vba Проблема с позиционированием графика
|
|||
---|---|---|---|
#18+
Задачка довольно простая, но решить ее не получается. Есть ряд листов-графиков, у которых отлавливается событие Chart_Activate. Пользователь уходя с листа мог изменить масштаб и покрутить скроллинг, хочется возвращаясь обратно на лист: 1) прокрутить скролл в 0;0, но поскольку лист имеет только график без ячеек не работает ActiveWindow.ScrollRow = 1 и почему-то не работает, вообще оно хоть у кого-нибудь работает? ActiveWindow.ScrollIntoView Left:=0, Top:=0, Width:=100, Height:=100 2) и масштабировать график под размер окошка (в 2007 excel работал код, в 2010 только для чтения доступны свойства) With Me.ChartArea .Top = 0 .Left = 0 .Height = ActiveWindow.UsableHeight .Width = ActiveWindow.UsableWidth End With У кого есть опыт/умные мысли в тему/советы поделитесь как решить проблемку ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2015, 11:44 |
|
Excel 2010 vba Проблема с позиционированием графика
|
|||
---|---|---|---|
#18+
Запишите макрорекордером возможные действия юзера по изгаживанию графика и изучите полученный код. И станет ясно, что сохранять и как восстанавливать. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2015, 13:15 |
|
Excel 2010 vba Проблема с позиционированием графика
|
|||
---|---|---|---|
#18+
Akina, боюсь, скроллинг не запишется )) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2015, 13:20 |
|
Excel 2010 vba Проблема с позиционированием графика
|
|||
---|---|---|---|
#18+
Shocker.Proбоюсь, скроллинг не запишется ))Мне лень изучать, является скроллинг процессом в Экселе, процессом в объекте График, или мож ещё там чем. Человеку надо - вот пусть и пашет, изучает и разбирается. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2015, 13:31 |
|
Excel 2010 vba Проблема с позиционированием графика
|
|||
---|---|---|---|
#18+
Не проблема, посмотрел записанные макросы. Там где лист-график нету команд скроллинга Там где лист с ячейками есть команды типа ActiveWindow.SmallScroll Down:=-57. Вопрос: Можно ли на этом основании сказать, что скроллить из vba невозможно листы-графики? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2015, 13:55 |
|
Excel 2010 vba Проблема с позиционированием графика
|
|||
---|---|---|---|
#18+
Нет такого понятия как лист-график. Вероятно, речь о листе, на коем расположен некий объект (Shape?). И скорее всего скроллинг выполняется методами этого объекта, изменяя при этом его свойства, и программно соответственно тоже нужно делать так же. Так что сперва разберись, с чем имеешь дело, поизучай объектную модель, а потом Locals Window в руки - и вперёд, смотреть, что и как изменяется при скроллинге. Поймёшь - сделаешь то же из VBA. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2015, 14:15 |
|
Excel 2010 vba Проблема с позиционированием графика
|
|||
---|---|---|---|
#18+
Akina, я извиняюсь, но реально лист-график есть, а понятия нет :) как еще называть вкладку, в которой есть только график. Почитать объектную модель можно, но хотелось отделаться небольшими временными затратами. Например, чтобы сделать те же действия на обычном листе ушло 20 минут, примерно так Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Модератор: Учимся использовать тэги оформления кода - FAQ ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2015, 14:23 |
|
Excel 2010 vba Проблема с позиционированием графика
|
|||
---|---|---|---|
#18+
AkinaНет такого понятия как лист-график.Чего-то ты сегодня жжешь ) Значешь, в чем разница, между Sheet и Worksheet? )) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2015, 14:31 |
|
Excel 2010 vba Проблема с позиционированием графика
|
|||
---|---|---|---|
#18+
Shocker.ProЗначешь, в чем разница, между Sheet и Worksheet? ))ну, точнее, между коллекциями Sheets и Worksheets ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2015, 14:36 |
|
Excel 2010 vba Проблема с позиционированием графика
|
|||
---|---|---|---|
#18+
Shocker.ProЗнаешь, в чем разница, между Sheet и Worksheet? )) Sheets == Worksheets + Charts И что? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2015, 14:36 |
|
Excel 2010 vba Проблема с позиционированием графика
|
|||
---|---|---|---|
#18+
The Worksheet object is also a member of the Sheets collection. The Sheets collection contains all the sheets in the workbook (both chart sheets and worksheets).а ты говоришь, нет такого понятия другой вопрос, что на нем нет ячеек (и связанных с ними свойств), так что скроллинг средствами объектной модели кажется мне маловероятным - надо в сторону API копать, видимо. скроллбары, я считаю, не принадлежат при этом диаграмме, это видно визуально ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2015, 14:44 |
|
Excel 2010 vba Проблема с позиционированием графика
|
|||
---|---|---|---|
#18+
Да Excel скроллинг вообще не считает изменением. Скроль - не скроль, один хрен в следующий раз файл откроется строго в том же положении. А вот, например, масштабирование - да. Считается. И в код макрорекордером - рисуется. [quot Shocker.Pro]что скроллинг средствами объектной модели кажется мне маловероятным Угу. Но пусть товарищ прочувствует. А потом мы ему расскажем, как сделать... В общем, всё тривиально. Вставляем модуль, где определяем переменную. При открытии книги запоминаем в неё текущий Zoom. А при каждом Activate меняем его - сперва чуть меньше, чем был, потом ровно как был. Есссно выключив апдейт экрана. В итоге пришли-нагадили-ушли-вернулись-имеем стандартное расположение. Если охота изменить дефолтный Zoom - придётся задать нужный и именно так сохранить файл. Ну или задать опять же в Workbook_Open. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2015, 15:08 |
|
Excel 2010 vba Проблема с позиционированием графика
|
|||
---|---|---|---|
#18+
Автору нужно смасштабировать под размер окошка, а не под то, как было при открытии книги. Собсно. Есть размер экрана, текущий размер диаграммы и текущий зум. hyp1k Код: vbnet 1. 2. 3. 4. 5. 6.
Раз нельзя записать размер диаграммы, что мешает вычислить и записать новый зум, имея эти данные? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2015, 15:20 |
|
Excel 2010 vba Проблема с позиционированием графика
|
|||
---|---|---|---|
#18+
Shocker.Pro, если я вас правильно понял, то мешает то, что ширина и высота монитора требуют зума по X и Y, зум же в экселе бывает только общий на соответствие пропорций монитора и графика никак не повлиять. Поэкспериментировав, я решил перекинуть график в воркщит и защитить лист оставив разрешение "изменение объектов", чтобы скрипт мог изменять размеры. Почему было требование у заказчика помещать графики на спец листы?! и чего я лишаюсь переходя на воркщиты?! пока не понимаю ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2015, 15:31 |
|
Excel 2010 vba Проблема с позиционированием графика
|
|||
---|---|---|---|
#18+
да, интересно, что нельзя изменять размеры И ПРОПОРЦИИ диаграммы на спецлисте... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2015, 15:36 |
|
Excel 2010 vba Проблема с позиционированием графика
|
|||
---|---|---|---|
#18+
впрочем, такой возможности я не нашел и 2003-м (то есть, видимо) была только программная возможность ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2015, 15:39 |
|
Excel 2010 vba Проблема с позиционированием графика
|
|||
---|---|---|---|
#18+
Угу вижу масштаб по осям, ну да в 2007 аналогично 2003, вкладки нет, программно можно менять. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2015, 16:18 |
|
Excel 2010 vba Проблема с позиционированием графика
|
|||
---|---|---|---|
#18+
hyp1k, Если цель вместить в область - то делается только масштабом. Поэтому можно так попробовать: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2015, 19:17 |
|
Excel 2010 vba Проблема с позиционированием графика
|
|||
---|---|---|---|
#18+
The_Prist, да только пропорции экрана графиком не соблюдаются, ну и бы писал так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2015, 12:02 |
|
|
start [/forum/topic.php?fid=61&msg=38935904&tid=2173539]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 145ms |
0 / 0 |