ファイル保存のダイアログ表示するには?


李俊  2007-08-23 02:47:00  No: 99347

以下のソースがありますが
Dim strSaveFilename As String       '作成したファイル名    
Dim objExcel As Object              'Excel応用対象
On Error GoTo Err_ObjCreateReport04
Set objExcel = CreateObject("Excel.Application")
strSaveFilename = objExcel.GetSaveAsFilename("", "Microsoft Excelブック(*.xls;*.XLS),*.xls;*.XLS")
        If strSaveFilename <> "False" Then
            With objWkbOne
                .SaveAs fileName:=strSaveFilename, Password:=strPassWord
            End With
            objWkbOne.Close savechanges:=True
        Else
Err_ObjCreateReport04:
            objWkbOne.Close savechanges:=False
        End If
        Set objWkbOne = Nothing        
        objExcel.Quit        
        Set objExcel = Nothing
でも、ファイル保存のダイアログ表示する時、他のアプリケーションを読んだら、フリーズ コンピュータの動作が停止することです。
原因についてお気付きの点をご指摘いただければ幸いです、よろしくお願いいたします。


李 俊  2007-08-24 00:54:02  No: 99348

何故ご指摘がありませんね?


大吉末吉  2007-08-24 01:00:17  No: 99349

> 何故ご指摘がありませんね?

日本の方じゃないんでしょうか?
日本語が無茶苦茶で、何を言っているのか良く分かりません。

よって、回答しようがありません。

申し訳ありません。
#少なくとも、提示されたコードを実行しも「フリーズ」は発生しませんでした。


李俊  2007-08-24 01:55:56  No: 99350

ご迷惑を掛けまして、申し訳ございませんでした。
中国人です、日本語が下手ので、本当にすみません。
教えていただきたいことをもう一度書いてみます。
以下はACCESS2000(9.0.3821 SR-1)でVBAのソースです
Dim strSaveFilename As String       '作成したファイル名    
Dim objExcel As Object              'Excel応用対象
On Error GoTo Err_ObjCreateReport04
Set objExcel = CreateObject("Excel.Application")
strSaveFilename = objExcel.GetSaveAsFilename("", "Microsoft Excelブック(*.xls;*.XLS),*.xls;*.XLS")
        If strSaveFilename <> "False" Then
            With objWkbOne
                .SaveAs fileName:=strSaveFilename, Password:=strPassWord
            End With
            objWkbOne.Close savechanges:=True
        Else
Err_ObjCreateReport04:
            objWkbOne.Close savechanges:=False
        End If
        Set objWkbOne = Nothing        
        objExcel.Quit        
        Set objExcel = Nothing
実行後、ファイル保存のダイアログ表示して、閉めないでください、他のアプリケーションを呼んだら、そのダイアログを戻る時、フリーズ コンピュータの動作が停止することです。
原因についてお気付きの点をご指摘いただければ幸いです、よろしくお願いいたします。


大吉末吉  2007-08-24 02:15:24  No: 99351

現象確認しました。

が、フリーズしているわけじゃないと思いますよ。

このプログラムでは、
Access->Excel(ダイアログ)と言う風に起動されていて、
Accessは、Excelのダイアログが閉じられるまで、動作できません。
#再描画もできません。

この時、別のアプリケーションを呼んで、戻る時に「Access」の方を指定してしまうと、
「Excel」が「Access」の後に隠れてしまい、操作できなくなります。
#また、Accessの再描画も行われないので、真っ白の画面になります。

ALT-TABで「Excel」のアイコンを指定すれば、再度ダイアログが表示され、操作できませんか?


李俊  2007-08-24 03:11:18  No: 99352

ご指摘をいただきありがとうございます。
設計書の要求で、ALT-TABを使ってはいけません。
マウスしか使えないです。ほかの方法がありますか?


大吉末吉  2007-08-24 03:20:22  No: 99353

と言うことは、現象の認識は正しいのですね?

でしたら、「Excelのダイアログ」を使用しなければ良いのではないでしょうか?
単にファイル名を指定するだけなんですから、「Excelのダイアログ」である必要は無いですよね?

Accessにも、ダイアログを表示するための機能(Application.FileDialog)がある様ですので、
そちらを使うようにしてはどうでしょうか?


李 俊  2007-08-24 03:34:24  No: 99354

ご提示をいただきありがとうございます。
問題は解決しました。
でも、ACCESSのバージョンは必ず2002です、そして、Microsoft Office 11.0 Object Libraryもあるのが必要です 。
詳細は
http://support.microsoft.com/default.aspx?scid=kb;ja;282335
御覧ください。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加