tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^2: エクセルのマクロ操作について
投稿日: 2006/10/24(Tue) 16:10
投稿者ヤマ@文系
できるかやってみました。

d:\Test.xls
のモジュール1に
Public Function msgTest()

MsgBox "Message"

End Function
と作っております。


'closeイベントからform1を直接操作できないのでデリゲートを使う

参照(はじめのhは抜けてます)
'http://www.microsoft.com/japan/msdn/vbasic/migration/tips/BackgroundWorker/


'2005のコード

Public Class Form1

    Private WithEvents xlApp As New Excel.Application
    Private Delegate Sub CallDelegate()



    Private Sub xlApp_WorkbookBeforeClose(ByVal Wb As Excel.Workbook, ByRef Cancel As Boolean) Handles xlApp.WorkbookBeforeClose
        MsgBox("終了されたので通常に")

        Invoke(New CallDelegate(AddressOf MeShow))

    End Sub



    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim xlBooks As Excel.Workbooks = xlApp.Workbooks
        '既存のファイルを開く場合
        Dim xlFilePath As String = "d:\Test.xls"
        Dim xlBook As Excel.Workbook = xlBooks.Open(xlFilePath)

        Me.WindowState = FormWindowState.Minimized '最小化

        xlApp.Visible = True        'Excelを表示(必ずとも表示しなくてもよい)

        xlApp.Run("msgTest")

    End Sub

    Private Sub MeShow()
        Me.WindowState = FormWindowState.Normal

    End Sub

End Class

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。