タイトル | : エクセルのアクティブBOOKの取得 |
記事No | : 9246 |
投稿日 | : 2009/08/04(Tue) 11:32 |
投稿者 | : GEN |
以下質問があります、ご存知の方 ご教授お願いいたします。
VB歴:VB6(6年),VB2008(半年),VBA(2年ぐらい) 使用環境:VB2008(Express版)+ Excel2007
VBプログラム上で、既に複数起動している EXCELブックで、アクティブなブック→シート→ セルへ文字列を出力したいのですが、どのようにして、アクティブセル情報を取得すれば よろしいでしょうか?
VB上でインスタンスを作成して起動したExcelブックのアクティブシート・セルの情報は 下記コードで取得可能なのですが、そのつど、VB上から起動したブックでないと、 取得は出来ないのでしょうか?
【やりたいこと】 ・既に起動している、複数のBOOKがあって、後から立ち上げたVBブログラムで参照したい。 ・VBプログラムが立ち上がっていて、後で作済みのエクセルブックを複数上げて アクティブブックを参照したい。(エクセルVBAでアクティブなブック→シート→セル の参照方法でも参考になりますので、アドバイスお願いいたします。)
Imports Microsoft.Office.Interop Public Class Form1 'ExcelイベントをVBで制御・監視するための定義(VBイベントとして組み込む) Public WithEvents xlApp As Excel.Application 'Excelアプリケーションイベント変数 Public WithEvents xlBook As Excel.Workbook 'Excelワークブックイベント変数 Public WithEvents xlSheet As Excel.Worksheet 'Excelワークシートイベント変数 Public WithEvents xlChart As Excel.Chart 'Excelチャートイベント変数
Public X As Integer Public Y As Integer Public Z As String Public S As String
Public ActAdress As String
'新規Excelファイルを作成する Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Excelインスタンスの生成 xlApp = CreateObject("Excel.Application") xlBook = xlApp.Workbooks.Add 'xlSheet = xlBook.Worksheets(1) xlSheet = xlBook.ActiveSheet
xlApp.Visible = True 'Excelアプリケーションを表示させる。FALSEだと非表示です。
xlBook.Activate()
X = xlApp.ActiveCell.Row Y = xlApp.ActiveCell.Column Z = xlApp.ActiveCell.Address
End Sub
Private Sub Form_QueryUnload(ByVal Cancel As Integer, ByVal UnloadMode As Integer) 'インスタンスの解放 xlApp = Nothing 'CreateObject("Excel.Application") xlBook = Nothing 'xlApp.Workbooks.Add xlSheet = Nothing 'xlBook.Worksheets(1) xlChart = Nothing 'xlChart End End Sub 'WorkBookのイベントに記述することでシート間の参照も可能。 Private Sub xlBook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Microsoft.Office.Interop.Excel.Range) Handles
xlBook.SheetSelectionChange X = xlApp.ActiveCell.Row Y = xlApp.ActiveCell.Column S = xlApp.ActiveSheet.name Z = xlApp.ActiveCell.Address 'アクティブセルへ情報書き込み xlApp.ActiveSheet.Cells(X, Y).value = S & "&" & Z
End Sub End Class
|