掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VB6でExcelを制御するには? (ID:112894)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
たびたびすみません. 以下のようにエクセルファイルの制御を行ってみました. 読みにくいソースかもしれませんがよろしくお願いします 他に良い方法がございましたら,ご教授お願いします. メニュー画面(menu.frm) '------------------------------------------------------ '実行ボタンが押下された際の処理 '------------------------------------------------------ private sub cmdActionMenu_click() ・・・・ ' コモンダイアログを表示 dlgCmnDialog.ShowOpen ' 選択されたファイル名を取得 If dlgCmnDialog.FileName = "" Then ' ファイルが選択されていない場合は終了 Exit Sub End If cmdActionMenu.Enabled = False ' 「実行」ボタンを非表示 bSelectFile = dlgCmnDialog.FileName ' ファイルオープン Call FileReadForExcel(bSelectFile, bCaption) ' エクセルアプリケーションが終了するまで待機 Call WatchExcelHandle(bCaption) dlgCmnDialog.FileName = "" ' ファイル名の初期化 cmdActionMenu.Enabled = True ' 「実行」ボタンを非表示 Exit Sub private Sub FileReadForExcel(ByVal pSelectFile As String, ByRef pCaptionTitle As String) Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet On Error GoTo ErrFileReadForExcel Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open(pSelectFile) Set xlSheet = xlBook.Worksheets(1) pCaptionTitle = xlApp.Caption ' キャプション名取得 xlSheet.Application.Visible = True Set xlSheet = Nothing ' オブジェクトの解放\ Set xlBook = Nothing Set xlApp = Nothing ErrFileReadForExcel: If Err.Number <> 0 Then Call MsgBox("エラーが発生しました。", vbCritical, App.Title) End If Exit Sub End Sub private Sub WatchExcelHandle(ByVal pCaptionTitle As String) Dim wkHwnd As Long '参考キャプション名を与えてハンドルを取得する wkHwnd = FindWindow(vbNullString, pCaptionTitle) ' エクセルファイルが起動中の場合 If wkHwnd <> 0 Then Sleep (2000) ' いったんプログラムを停止 ' 再度このプロシージャを呼ぶ Call WatchExcelHandle(pCaptionTitle) End If End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.