Перейти к содержанию

Utility.GetEntity в Excel vba не работает: Invalid procedure call or argument


Рекомендуемые сообщения

Мне надо выполнить кое-какую обработку многострочного текста.

Пишу самую простую процедуру выбора этого самого текста:

Option Explicit
Public app As Nanocad.Application 'NanoCAD application global var
Public ThisDrawing As Nanocad.Document 'Active NanoCAD document global var
Sub my_drawing()
Dim MTxt As AcadMText
Dim ChoosedObject As AcadObject
Dim Point As Variant
Dim i As Integer

Set app = GetObject("", "nanoCAD.Application") 'Connect to running nanoCAD
app.Visible = True 'Show NanoCAD window
Set ThisDrawing = app.ActiveDocument 'Connect to nanoCAD doc

ThisDrawing.Utility.GetEntity ChoosedObject, Point, "Choose MText"
If ChoosedObject.EntityName <> "MText" Then
	i = MsgBox("Not an MText, vbCritical, "Wrong choose")
Else
	MTxt = ChoosedObject
	' Other code
End If

End Sub

 

Не могу добиться работоспособности строчки ThisDrawing.Utility.GetEntity ChoosedObject, Point, "Choose MText".

Окно Nanocad отображается на экране, появляется запрос на выбор объекта, я выбираю этот объект - а потом VBA мне сообщает: Invalid procedure call or argument.

Продолжение работы через On Error Resume Next не помогает: в переменной ChoosedObject не записывается ничего.

 

Макрос пишу в редакторе VBA Microsoft Excel 2007. Nanocad 8.5

Что тут можно сделать?

Ссылка на сообщение
Поделиться на другие сайты

может скобки помогут? но это не точно

Ссылка на сообщение
Поделиться на другие сайты

пробуй позднее связывание, или хотя бы так

Dim ChoosedObject As Object

всеравно инвалид?

Ссылка на сообщение
Поделиться на другие сайты

не благодари

Option Explicit
Public app As nanoCAD.Application 'NanoCAD application global var
Public ThisDrawing As nanoCAD.Document 'Active NanoCAD document global var
Sub my_drawing()
  '  Dim MTxt As Object
    Dim ChoosedObject As Variant
    Dim Point As Variant
 '   Dim i As Integer

    Set app = GetObject("", "nanoCAD.Application") 'Connect to running nanoCAD
    app.Visible = True 'Show NanoCAD window
    Set ThisDrawing = app.ActiveDocument 'Connect to nanoCAD doc

    ThisDrawing.Utility.GetEntity ChoosedObject, Point, "Choose MText"
    If ChoosedObject.EntityName <> "AcDbMText" Then
		    MsgBox "Not an MText, vbCritical"
    Else
		    MsgBox ChoosedObject.TextString
		    ' Other code
    End If

End Sub

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Расскажите друзьям

    Нравится Официальный форум компании Нанософт? Расскажите друзьям!
×
×
  • Создать...