プロが教える店舗&オフィスのセキュリティ対策術

VB6.0にて開発しています。

自分の端末でEXCELを使用している際
どのブックを開いているかVB側にて取得
する方法を教えて下さい。

現状)VBからあるフォルダのBOOKを
コピーし、そのBOOKにデータを
貼り付けています。しかし他のBO
OKを開いているとメモリエラーが
起こります。その為EXCELが立
ち上がっていたら警告を出そうと思
います。

A 回答 (1件)

サンプルです。



プロジェクトの参照設定で
Microsoft Excel x.0 Object Libraryを指定
(x.0はエクセルのバージョンによって、違う数字です)


Option Explicit

Sub Main()
  Dim xlApp  As Excel.Application
  Dim xlBook As Excel.Workbook
  Dim strDebug As String
  Dim strPath As String
  
  '起動しているエクセルアプリを取得する
  On Error Resume Next
  Set xlApp = GetObject(, "Excel.Application")
  On Error GoTo 0
  
  '取得失敗
  If xlApp Is Nothing Then
    Debug.Print "EXCELは起動していないようです"
  
  '取得成功
  Else
    'これより情報をデバッグウィンドウに出力
    Debug.Print xlApp.Workbooks.Count & "冊のワークブックが見つかりました"
    'ブックが存在する分だけ、ブックの情報を記す
    For Each xlBook In xlApp.Workbooks
      strPath = xlBook.Path
      If strPath = "" Then
        strPath = "未保存"
      End If
      strDebug = xlBook.Name & "[" & strPath & "]"
      Debug.Print strDebug
'      xlBook.Close False '保存せずにブックを終了させる時
    Next xlBook
    
'    xlApp.Quit   'エクセルアプリを終了させる時
    Set xlApp = Nothing
  End If
End Sub
    • good
    • 0
この回答へのお礼

助かりました。本当に有難うございます。

お礼日時:2002/01/17 17:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!