Как задать размер диаграммы в Excel?

Программирование на Visual Basic for Applications
Nebary
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 05.07.2003 (Сб) 21:09
Откуда: Taganrog

Как задать размер диаграммы в Excel?

Сообщение Nebary » 05.07.2003 (Сб) 21:13

Не устраивает что-то вроде
Код: Выделить всё
   ActiveSheet.Shapes("Диагр. 1").ScaleWidth 1.2, msoFalse, msoScaleFromTopLeft
   ActiveSheet.Shapes("Диагр. 1").ScaleHeight 1.21, msoFalse, msoScaleFromTopLeft

Мне нужно задать конкретный размер, желательно в пикселях, наподобие
Код: Выделить всё
Width:=100
или что-то в это роде.
Как???

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.07.2003 (Вс) 6:19

Ну и в чём проблема?
Код: Выделить всё
ChartObjects(1).Width = 100
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nebary
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 05.07.2003 (Сб) 21:09
Откуда: Taganrog

Сообщение Nebary » 06.07.2003 (Вс) 11:31

Спасибо GSerg, перекопал достаточно способов, даже в Word отправлял :), но такого простого решения не увидел :).

А вообще у Excel есть свои косяки, без которых было бы намного проще и вопроса такого бы не возникло. Дело в том, что я сам программлю Excel из Дельфей , так вот - весь косяк в том, что некоторые методы и свойства не прописаны в COM. Это лично мой вывод, к примеру когды вы записываете макрос на выделение и последующее перемещение диаграммы, то записывается следующее:
Код: Выделить всё
    ActiveSheet.ChartObjects("Диагр. 1").Activate
    ActiveChart.ChartArea.Select
    ActiveSheet.Shapes("Диагр. 1").IncrementLeft 49.5
    ActiveSheet.Shapes("Диагр. 1").IncrementTop -12.75

, но выполнить этот макрос в том же VBA уже невозможно, возвращается ошибка
Код: Выделить всё
Run-time error '1004':
Невозможно получить свойство ChartObjects класса WorkSheet


Ессна из Дельфей тем паче я не достучусь до этого свойства.
Может кто знает? Либо когда общаешься с COM нужно брать это свойство у какого-то другого класса, либо этого просто нету в реализации COM. Никто не сталкивался?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.07.2003 (Вс) 15:27

Ты не совсем прав :)
В своё время я тоже много зубов обломал об эту ошибку офиса. А фишка всего лишь в том, что по дефолту имена объектов английские, что бы там ни было написано в строке имени на рабочем листе. В частности, первая диаграмма называется "Chart 1", хотя в списке отображается "Диагр. 1"
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nebary
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 05.07.2003 (Сб) 21:09
Откуда: Taganrog

Сообщение Nebary » 06.07.2003 (Вс) 15:36

Спасибо, Gserg! :)

Это все решает. (С русификацией конечно перестарались :) Слушай, все это хорошо, но может ты сможешь ответить и на мой вопрос из другой темы? А может кто еще из мастеров знает? Заранее спасибо (ты меня очень выручаешь ;)

1. Еще один вопрос по диаграммам http://bbs.vbstreets.ru/viewtopic.php?t=2078
2. Как запретить переход по гиперссылкам в Excel? http://bbs.vbstreets.ru/viewtopic.php?t=2076


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 20

    TopList