VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/06/26(Thu) 16:41
投稿者こうじ
Eメール
URL
タイトル再現方法

> 質問1が再現できるコードと手順を教えて頂けないでしょうか?
> 今一状況が飲み込めませんので(私だけかな!)
> 最初に投稿されたコードでは起きませんよね

説明が結構不足しておりました。すいません。m(_ _)m
最初に投稿されたコードでも再現できます。

再現できるように、新規画面に終了ボタン[cmdEnd]だけ作成して、
以下のコードを貼り付けてください。(参照設定もしてください。)
それを何処かのフォルダに保存していただき、そのフォルダに
"ORG.xls"というファイルを作ってください。(新規ファイルでOK)

ご面倒お掛けしますが、よろしくお願いします。

再現手順
1. 画面起動
--もちろん"TMP.xls"が非表示で起動されます。
--(タスクマネージャにて確認してください。[プロセスのみ])

2. "ORG.xls"をダブルクリックして起動
--この時、"ORG.xls"と一緒に非表示にしてあった"TMP.xls"が
--表示されてしまいます。

============================================================
Option Explicit

'*** 画面変数宣言 ***
Private xlApp       As Excel.Application
Private xlBook      As Excel.Workbook

'*** 画面定数宣言 ***
Private Const WCON_ORG_FILE As String = "ORG.xls"
Private Const WCON_TMP_FILE As String = "TMP.xls"

Private Sub Form_Load()

'変数宣言
Dim strOrgFileNm    As String   'オリジナルファイル
Dim strTmpFileNm    As String   'コピーファイル

    'ファイル名設定
    strOrgFileNm = App.Path & "\" & WCON_ORG_FILE
    strTmpFileNm = App.Path & "\" & WCON_TMP_FILE

    'Excelオブジェクト作成
    Set xlApp = CreateObject("Excel.Application")
    'Excel非表示設定
    xlApp.Visible = False

    'コピーファイルが既に存在する場合、コピーファイル削除
    If Dir(strTmpFileNm) <> "" Then Kill strTmpFileNm

    'オリジナルファイルをコピー
    Call FileCopy(strOrgFileNm, strTmpFileNm)

    'コピーファイルを開く
    Set xlBook = xlApp.Workbooks.Open(strTmpFileNm)

End Sub

Private Sub cmdEnd_Click()
    Unload Me
End Sub

Private Sub Form_Unload(Cancel As Integer)
    '保存確認ダイアログ非表示
    xlApp.DisplayAlerts = False
    'コピーファイルを閉じる
    Call xlBook.Close(False)

    'ブック数チェック
    If xlApp.Workbooks.Count = 0 Then
    '# ブックが無い場合
        'Excelを終了
        xlApp.Quit
    Else
        '保存確認ダイアログ表示
        xlApp.DisplayAlerts = True
    End If

    ' オブジェクトの開放
    Set xlBook = Nothing
    Set xlApp = Nothing
End Sub
============================================================


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

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -