Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Размеры графиков в VBA Добавлено: 03.10.06 20:19  

Автор вопроса:  Crypton
на странице в Exel имеется несколько графиков. Выбираю один из них, запускаю макрос (установка шрифтов, подпизи цвет и т. д.) все ступорится на задании размеров выделенного графика (не сетки). Как это сделать?

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 angrynews



Вопросов: 33
Ответов: 119
 Web-сайт: www.angrynews.ru
 Профиль | | #1
Добавлено: 04.10.06 14:28
что сделать-то???
Попробуй записать макрос и посмотреть его

Ответить

Номер ответа: 2
Автор ответа:
 Crypton



Вопросов: 2
Ответов: 4
 Профиль | | #2 Добавлено: 04.10.06 17:48
вот кусок кода:
ActiveSheet.Shapes("Диагр. 1";).ScaleWidth 0.55, msoFalse, msoScaleFromTopLeft
    ActiveSheet.Shapes("Диагр. 1";).ScaleHeight 0.71, msoFalse, msoScaleFromTopLeft

как сделать не Shapes("Диагр. 1";), а именно выделенную диаграмму, без указания на ее имя, потому сто я не знаю ее имени. Или может как сделать присвоение выделенной диаграмме имени, а потом его использовать в Shapes. при этом чтобы имена не повторялись в случае нескольких диаграмм на листе

Ответить

Номер ответа: 3
Автор ответа:
 angrynews



Вопросов: 33
Ответов: 119
 Web-сайт: www.angrynews.ru
 Профиль | | #3
Добавлено: 05.10.06 11:18
Сорри, но я тебя не могу понять, что требуется тебе ;-) Хотя сам иногда также путанно задаю вопросы!

Ответить

Номер ответа: 4
Автор ответа:
 Crypton



Вопросов: 2
Ответов: 4
 Профиль | | #4 Добавлено: 05.10.06 19:11
Если у меня будет несколько диаграмм на листе, я выделю одну, запущу макрос с кодом
ActiveSheet.Shapes("Диагр. 1";).ScaleWidth 0.55, msoFalse, msoScaleFromTopLeft
    ActiveSheet.Shapes("Диагр. 1";).ScaleHeight 0.71, msoFalse, msoScaleFromTopLeft

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

Ответить

Номер ответа: 5
Автор ответа:
 Незнайка



Вопросов: 7
Ответов: 188
 Профиль | | #5 Добавлено: 10.10.06 08:25
Например можно так:
Выделяешь интересующую тебя на листе диаграмму и запускаешь приведенный код:
Sub МасштабДиаграммы()
    Dim Имя As String
    
    Имя = Right(ActiveChart.Name, Len(ActiveChart.Name) - InStr(1, ActiveChart.Name, " ", 1))
    ActiveSheet.Shapes(Имя).ScaleWidth 0.5, msoFalse
    ActiveSheet.Shapes(Имя).ScaleHeight 0.5, msoFalse
End Sub
Это приведет к уменьшению диаграммы вдвое.

Ответить

Номер ответа: 6
Автор ответа:
 Crypton



Вопросов: 2
Ответов: 4
 Профиль | | #6 Добавлено: 10.10.06 18:26
тормозится на строке
ActiveSheet.Shapes(Имя).ScaleWidth 0.5, msoFalse

сначала не понял в чем дело, а потом посмотрел какое значение он присваивает переменной Имя - оказалось, что там вместо "Лист1 Диаграмма1" стоит "ист1 Диаграмма1" - почему-то обрезает первую букву. Пробовал по-разному лист называть - та же фигня.
Р.S. На другом компе работает нормально! :) Спасибо!
А как сделать, чтобы диаграмма не масштабировалась, а выставлялся определенный размер_ например 150 на 200.
Фишка типа
ActiveSheet.Shapes(Имя).Width 100, msoFalse
не прокатывает :(

Ответить

Номер ответа: 7
Автор ответа:
 Crypton



Вопросов: 2
Ответов: 4
 Профиль | | #7 Добавлено: 11.10.06 18:58
Со всем разобрался, спасибо за помощь

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам