2017-10-25 18 views
0

AutoCADを開いて入力ボックスをアクティブにして値を入力し、値を入力するコードを作成しています。私のコードの問題は、autoCadを開き、inputBoxのコードを実行してからexcelに別のinputBoxを作成することです。私は自分のコードをAutoCADでのみ動作させたいが、Excelを使用したい。ここに私のコードです:Excelを使用してAutoCADでInputBoxの値を入力する

Sub Access_ACad() 
Dim myValue As Variant 
Dim ans As String 
Dim MyApp As Object 
Dim MyDwg As AcadDocument 
Dim ShellDraft As String 
On Error GoTo ERRORHANDLER 
Set MyApp = GetObject(, "Autocad.Application") 
ERRORHANDLER: 
If Err.Description <> "" Then 
Err.Clear 
Set MyApp = CreateObject("Autocad.Application") 
End If 

MyApp.Visible = True 
Set MyDwg = MyApp.ActiveDocument 
Sheet1.Cells(1, 1).Value = MyDwg.Name 
ShellDraft = "Z:\USERS\KweziM\PROJECT S\Project.dvb" 

MyApp.LoadDVB (ShellDraft) 

MyApp.RunMacro "FCI" 

myValue = InputBox("1 = FCI" & vbCrLf & _ 
      "2 = ECI", "Model", 1) 
Application.SendKeys "{ENTER}" 
End Sub 
+0

あなたが見ている2つの入力ボックスのプロンプトは、所有しているアプリケーションが異なると思われます。つまり、FCIマクロには入力ボックス(ACADから来ています)があります。 Excelが所有しています。 –

+0

はい、何が起こるのですか?これを修正するには – Kwezi

+0

もしそれが起こっているのであれば、私はExcel(上のコード)のこの行は冗長だと思うでしょう。 'myValue = InputBox(" 1 = FCI "&vbCrLf&_ " 2 = ECI "、" Model "、1)'コメントアウトしてコードをもう一度チェックしてください。 –

答えて

1

これは私たちの上記の交換に基づいて行う必要があると思います。

  1. Excelにあるコード行、つまりここに投稿したコードを削除します。

myValue = InputBox("1 = FCI" & vbCrLf & _ "2 = ECI", "Model", 1) Application.SendKeys "{ENTER}"

"FCI" という名前
  • オープンAutoCADのVBプロジェクトのDVBファイルとマクロ
      。行を挿入してください

    myValue = InputBox("1 = FCI" & vbCrLf & _ "2 = ECI", "Model", 1) 必要に応じて。 AutoCAD自体でプロンプトを表示するため、SendKeysの構文は必要ありません。コード内でさらに必要に応じてmyValueを使用してください。

  • 関連する問題