Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > Граф на форме


Автор: Dimitry 9.5.2007, 01:17
Помогите! Нужно нарисовать граф (в Excel-е на VBA программным путем), нагруженный с подписями (вершин и ребер), а также соединить определенные вершины дугами с подписями. За тем отобразить его на форме.
Заранее спасибо! Очень срочно нужно! smile 

Автор: Izuver 9.5.2007, 20:22
Как я полагаю на форме нельзя рисовать линии, если можно скажите как. Можно сделать Shape'ы, снять с них скриншот и вставить на форму. Построение графа и вставка скриншота, показано у Гарнаева - "VBA".

Автор: Dimitry 13.5.2007, 15:57
Да, согласен можно. Но есть еще один вопрос. Можно ли сделать скриншот не выделенного диапазона ячеек листа (способ указанный в книге Гарнеева: “VBA”), а задав определенную область экрана? Если можно подскажите как соединить две вершины графа не прямой, а закругленной дугой. Желательно указывая только какие две фигуры соединить, как это делается с прямой соединительной линией. 
Если можно приведите пример.
Спасибо за помощь.

Автор: Izuver 20.5.2007, 20:12
Код

ActiveSheet.Shapes.AddShape(msoShapeOval, 154, 30, 10, 10).Name = "Пов 1" 'Создать и обозвать поверхности
ActiveSheet.Shapes.AddShape(msoShapeOval, 90, 213, 10, 10).Name = "Пов 2" 'Номера сам допишешь
ActiveSheet.Shapes.AddConnector(msoConnectorCurve, 0, 0, 0, 0).Select 'Добавление линии размеров (неважно какого размера)
Selection.ShapeRange.ConnectorFormat.BeginConnect ActiveSheet.Shapes("Пов 1"), 8 'Присоединение линии размеров к поверхностям в указанных точках
Selection.ShapeRange.ConnectorFormat.EndConnect ActiveSheet.Shapes("Пов 2"), 3


Если вместо дуги (msoConnectorCurve) нужна прямая линия используй "msoConnectorStraight". Чтобы указать поверхности надо знать где ты будешь использовать данный код, потому как способов можно придумать много, например использовать "InputBox". Чтобы знать к каким точкам присоединять линии размеров, нужно знать месторасположение поверхностей, они могут произвольно разбросаны или выстроены в линию, тебе знать лучше. Хотелось бы увидеть для какого расчета нужен граф и есть в нем линии припусков?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)