![]() |
Форум visio.getbb.ru |
О форумах
Библиотека | Частые вопросы | Литература | Склад материалов Visio Navigator | Blog | Полезные ссылки | О сайте История Visio | Продукты Visio |
Для русскоязычных пользователей Visio. Начинающих и профессионалов. Где взять, как сделать, что купить и т.д. |
Основой программирования в Visio является объектная модель. В виде картинки доступна объектная модель Visio 2002.
В каждой новой версии обычно приводятся перечни удаленных и появившихся вновь объектов, свойств методов.
Обычно для каждой версии создается свой SDK (Software Development Kit), в котором можно получить наиболее точные сведения. Адреса для загрузки:
16.02.2022
16.02.2022
22.02.2021
10.12.2019
10.12.2019
07.06.2019
31.07.2018
10.12.2016
07.07.2015
14.06.2014
14.06.2014
14.06.2014
21.05.2013
28.08.2012
14.03.2011
20.04.2010
02.11.2009
03.08.2009
20.05.2009
17.01.2009
25.09.2008
25.09.2008
17.05.2008
25.02.2008
01.01.2008
17.05.2007
13.09.2006
22.09.2004
22.09.2004
Как из Visio из процедуры на VBA получить доступ к листу в книге Excel?
Как из Visio из процедуры на VBA получить доступ к листу в книге Excel? Так же интересует обратная проблема Генерация файла Excel из Визио
Sub ReadExcel() Dim ExcelObject As Object Set ExcelObject = CreateObject("Excel.Application") ExcelObject.Workbooks.Add ' Добавляем новую книгу ExcelObject.Workbooks.Open FileName:="C:\Work\Opis.xls" ' Открываем файл ExcelObject.Visible = True ' делаем excel видимым ExcelObject.Range("A1", "A1").Value = "Test:" ExcelObject.Range("A1", "A1").HorizontalAlignment = 1 ExcelObject.Range("A1", "A1").VerticalAlignment = 2 ExcelObject.Range("A1", "A1").WrapText = 1 ' ExcelObject.Quit ' для закрытия excel End Sub
Соответственно можно только открыть какой-то файл или только создать пустую книгу. Остальные команды и форматы записи управления Excelем можно узнать используя запись макросов в самом Excel, а затем посмотрев текст в редакторе VBA.
Как определить размер (длину в мм) текстовой строки?
Подскажите, как определить размер (длину в мм) текстовой строки, а не размер шейпа в котором она написна. Нужно для функции на VBA.
На основе примера из документации:
Sub Text_width() Dim shpObj As Visio.Shape Set pagsObj = ThisDocument.Pages Set pagObj = pagsObj.Item(1) Set selectObj = ActiveWindow.Selection Set shpObj = ActiveWindow.Selection.Item(1) shpObj.Text = "Text here" 'пишем текст в фигуру или оставляем shpObj.AddSection visSectionUser 'добавляем раздел shpObj.AddRow visSectionUser, visRowUser + 0, 0 'добавляем строку Set celObj = shpObj.Cells("User.Row_1") 'назначаем ячейку celObj.Formula = "TEXTWIDTH(TheText)" 'забиваем формулу TextWTH = celObj.Result(visMillimeters) 'забираем результат MsgBox TextWTH, , "Text width" 'показываем результат End Sub
Как из скрипта можно установить единицу измерения?
Есть какая то заморочка с дюймами... вообще хочу работать с см, поэтому меняю для странички в Page setup inches на cm все вроде ок.. Потом, при расстановке фигур по страничке не могу разобраться в чем идет расчет, например: elements(0).SetBegin x / 2.54, (2 + Kcell_total(0) / step) / 4.54 при значении Kcell_total(0)=4241, x=2 начало получается расположенным в точке (2;4,5) - каким образом.... не могу понять и попутно как из скрипта можно установить единицу измерения для pages или для page..
Единица измерения переключается масштабом
ActivePage.PageSheet.Cells("PageScale").Formula = "1 cm" ActivePage.PageSheet.Cells("DrawingScale").Formula = "1 cm"
переведет в см, а
ActivePage.PageSheet.Cells("PageScale").Formula = "1 in" ActivePage.PageSheet.Cells("DrawingScale").Formula = "1 in"
переключит в дюймы. Но вводите данные Вы все равно в дюймах, поэтому (2дюйма)/2.54 дает 2 см и отстоит на 2 клеточки от края листа, если единицу измерения установили см. (по Y Вы не сообщили значение step). Короче, видеть Вы будете в см, а вводить в дюймах.