themaster Posted January 26, 2019 Report Share Posted January 26, 2019 Мне надо выполнить кое-какую обработку многострочного текста. Пишу самую простую процедуру выбора этого самого текста: 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 Что тут можно сделать? Quote Link to comment Share on other sites More sharing options...
doctorraz Posted January 26, 2019 Report Share Posted January 26, 2019 может скобки помогут? но это не точно Quote Link to comment Share on other sites More sharing options...
themaster Posted January 26, 2019 Author Report Share Posted January 26, 2019 Какие именно и где? Quote Link to comment Share on other sites More sharing options...
doctorraz Posted January 27, 2019 Report Share Posted January 27, 2019 пробуй позднее связывание, или хотя бы так Dim ChoosedObject As Object всеравно инвалид? Quote Link to comment Share on other sites More sharing options...
doctorraz Posted January 27, 2019 Report Share Posted January 27, 2019 не благодари 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 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.