投稿日 | : 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
============================================================