Excel AddIn、.NET 4.0、NetOffice 1.5.1.2、ExcelDNA 1.29、C# インストーラーは、次のように VBA を使用して xls (install.xls) を呼び出します。install.xls の最後で、Excel が終了します。ただし、Excel を閉じた後、Excel がクラッシュし、「Excel が動作を停止しました... レポートを Microsoft に送信してください」という 2 つのボタンが表示されます。1 つは「送信しない」、もう 1 つは送信です。
これは、Windows XP + Excel 2007 または WinXP + Excel 2010 でのみ発生します。また、デバッグ中に、Application.Wait を MsgBox に置き換えると、クラッシュの問題がまったく発生しないことに気付きます。ある種のタイミングの問題があるように感じますが、実際には何の手がかりもありません。この問題は私を夢中にさせます。助けてください。ありがとう!
Private Sub Workbook_Open()
Dim quit As Integer
Dim added As Boolean
added = Add_Addin
Application.Wait (Now + TimeValue("0:00:02"))
If Workbooks.Count = 1 Then
Application.Wait Now + TimeValue("0:00:03")
Application.quit
Else
Application.Wait Now + TimeValue("0:00:03")
Me.Close
End If
End Sub
Private Function Add_Addin() As Boolean
On Error GoTo ERR_
Dim addinFile As String
addinFile = ThisWorkbook.Path & "\" & "MyAdd-In.xll"
If Len(addinFile) > 0 Then
Dim LEA As AddIn
Set LEA = Application.AddIns.Add(addinFile)
If (Not LEA Is Nothing) Then
LEA.Installed = True
Else
MsgBox "Failed to add XLL"
End If
'If (Application.RegisterXLL(addinFile) = True) Then
' MsgBox "Yeah, succeed registering XLL"
'Else
' MsgBox "Failed to register XLL"
'End If
Else
MsgBox "XLL file not found"
End If
addinFile = ThisWorkbook.Path & "\" & "MyFunc.xla"
If Len(addinFile) > 0 Then
Dim LEA2 As AddIn
Set LEA2 = Application.AddIns.Add(addinFile)
If (Not LEA2 Is Nothing) Then
LEA2.Installed = True
Else
MsgBox "Failed to add xla"
End If
Else
MsgBox "xla file not found"
End If
Add_Addin = True
Exit Function
ERR_:
MsgBox ("Error " & Err.Number & " " & Err.Description)
Add_Addin = False
End Function