投稿者 みかちゃん  (社会人) 投稿日時 2008/10/7 03:08:20
ちなみに
コードはこんな感じです。

■■■ VB2005側 ■■■

Public Sub TEST
        Dim xlApp As Object = CreateObject("Excel.Application")
        Dim xlBooks As Object = xlApp.Workbooks

        Try
            Dim xlFilePath As String = "C:\Test.xls"
            Dim xlBook As Object = xlBooks.Open(xlFilePath)

            Try
                xlApp.Visible = True              'Excelを表示
                xlApp.Run("Test.xls!プレビュー")  'マクロ実行
              
            Finally
                xlBook.Close(False)             'xlBook を閉じる
                MRComObject(xlBook)             'xlBook の解放dd
            End Try
        
    Finally
            MRComObject(xlBooks)            'xlBooks の解放
            xlApp.Quit()                    'Excelを閉じる 
            MRComObject(xlApp)              'xlApp を解放

        End Try

    End Sub

    Private Sub MRComObject(Of T As Class)(ByRef objCom As T, Optional ByVal force As Boolean = False)
        If objCom Is Nothing Then
            Return
        End If
        Try
            If System.Runtime.InteropServices.Marshal.IsComObject(objCom) Then
                If force Then
                    System.Runtime.InteropServices.Marshal.FinalReleaseComObject(objCom)
                Else
                    Dim count As Integer = System.Runtime.InteropServices.Marshal.ReleaseComObject(objCom)
                End If
            End If
        Finally
            objCom = Nothing
        End Try
    End Sub


■■■ Excel側 ■■■

Public Sub プレビュー()
      Workbooks("Test.xls").Sheets("Test").Select
      ActiveWindow.SelectedSheets.PrintPreview
End Sub