プロが教えるわが家の防犯対策術!

VB6でエクセルを保存させると、動作は問題ないのですが、「名前をつけて保存」のウィンドウが他のプログラムの下に出てしまいます。他のプログラムをあらかじめ避けておかないと、ウィンドウにアクセスできません。どうしたらよいのでしょうか?

Option Explicit
Dim xlApp As Excel.Application
Dim xlBok As Excel.Workbook
Dim xlSht As Excel.Worksheet

Private Sub Form_Load()
Set xlApp = CreateObject("Excel.Application")
Set xlBok = xlApp.Workbooks.Add
Set xlSht = xlBok.Worksheets(1)
  xlSht.Activate

End Sub

Private Sub EndBtn_Click()
Dim xlFName As String
On Error Resume Next

'1
xlFName = xlApp.GetSaveAsFilename(fileFilter:="Excel (*.xls), *.xls")
Call xlBok.SaveAs(xlFName)

'2 Application.Dialogs(xlDialogSaveAs).Show

Call xlApp.Quit
Set xlSht = Nothing
Set xlBok = Nothing
Set xlApp = Nothing
End
End Sub

1の方法でも2の方法でも同じです。
なお、VBは全くの初心者です

A 回答 (2件)

すみません。


VBのFormだけが表示されてると早合点しての回答でした。

ちょと見苦しいですが以下のように

'---------------------------------
 Me.Hide
  xlApp.Visible = True  '●●●
   Application.Dialogs(xlDialogSaveAs).Show
 Me.Show

'---------------------------------

エクセルをACTIVEにするとか。。


何れにしろこの質問はAPIの範疇だと思いますので
ネットで、「API 前面 VB」などをキーにして検索してみてください。
サンプルコードがたっぷり出てきます。
 
    • good
    • 2
この回答へのお礼

ありがとうございました

アクティブにすると出てきました。
ちょっと煩わしいですけど、一応できるようになりました。

お礼日時:2007/09/14 13:02

VB6は使ったことないので何なんですが。

。。

'---------------------------------

 Me.Hide
   Application.Dialogs(xlDialogSaveAs).Show
 Me.Show

'---------------------------------

でどうでしょう。。
ただ、これだとFormのActivateイベントにコードがあったらちょと工夫が要りますが。。
 
勘違いでしたらご容赦願います。
 
    • good
    • 0
この回答へのお礼

ありがとうござます。

これで、確かに自分は消えますが、同時に表示されている他のプログラムのウィンドウは消えません。
「名前を~」は他のプログラムも含めて、一番下に出てしまうんです。

お礼日時:2007/09/14 11:13

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A