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

下記に表示・非表示のモジュールを2つ書きました。
例えばこれをUserformでコマンドボタン作って実行できるようにしたとします。

1つ目
’≪ブックを非表示にする≫
Private Sub CommandButton1_Click()
Dim wb As Workbook, BN As String
For Each ws In Workbooks
cnt = cnt + 1
Next ws
If cnt = 1 Then
Application.Visible = False
Else
BN = ThisWorkbook.Name
Application.Windows(BN).Visible = False
End If
End Sub

2つ目
'≪ブックを表示する≫
Private Sub CommandButton2_Click()
Dim wb As Workbook, BN As String
For Each ws In Workbooks
cnt = cnt + 1
Next ws
If cnt = 1 Then
Application.Visible = True
Else
BN = ThisWorkbook.Name
Application.Windows(BN).Visible = True
End If
End Sub


次に、新規に他のエクセルファイルを開きます。何らかの
エクセルファイルでもいいです。

その後に上記の非表示にするモジュールを実行します。
残ったエクセルファイルを閉じてみてください。
Thisworkbookの方に閉じるメッセージが出ます。(なんででしょうか?)

何らかの工夫で後で開いたエクセルファイルを閉じるようにできませんか?
わかる方、お願致します。

A 回答 (1件)

こんにちは


>なんででしょうか?
仕様かな・・

>何らかの工夫で後で開いたエクセルファイルを閉じるようにできませんか?

操作の制限が必要になりますが・・・別インスタンスで対象ブックを開けば
Thisworkbookは閉じられないと思います

制限・・他のブックはVBAから開く

一例です
>Userformでコマンドボタン作って
CommandButton1,2はすでにある通り
CommandButton3を追加・・このボタンで開く

Private Sub CommandButton3_Click()
Dim xlApp As Object
Set xlApp = New Excel.Application
Dim wb As Workbook
Dim Target As String
Target = Application.GetOpenFilename("Excel ブック,*.xls?")
If Target = "False" Then Exit Sub
xlApp.Visible = True
Set wb = xlApp.Workbooks.Open(Target)
Set xlApp = Nothing
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。不思議ですけど、うまくいきました♪

お礼日時:2022/09/17 19:57

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