ここから本文です

EXCEL(エクセル)VBA の質問です。

t_i********さん

2020/5/3101:00:16

EXCEL(エクセル)VBA の質問です。

非常に多くのシートを扱う為、ユーザーフォームのコンボボックスで選択したシートを”新しいウィンドウを開く"でシートで表示し、通常はシートタブでは非表示にしておきたいと考えているのですが、次のやり方がわかりません。
2以上のシートが開いている時に限定して、アクティブシートを閉じた際にそのシートを非表示にするという操作はどのよう・どこにコードを書いたらいいでしょうか。
前述の通り非常に多くのシートを使っているため、それぞれのシートにマクロを組むのはしたくないです。
activesheet.Visible= false をどこにどのように書けばいいでしょうか。

閲覧数:
23
回答数:
2

違反報告

回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

kin********さん

2020/5/3105:30:18

上記のでも良いし、別に配置しても良いので、ユーザーフォームの中にコマンドボタンを配置します。そのコマンドボタンのClickイベントに、
activesheet.Visible= false
を記述すれば1つだけの記述で済みます。
ただ、最後の1枚を消す、つまり可視シートがゼロになるとエラーを起こしますから、消そうとしているシートが最後の1枚でないことを判定する必要があると思います。

Dim Ws As Worksheet, n

n = 0
For Each Ws In Worksheets
If Ws.Visible = True Then
n = n + 1
End If
Next

If 1 < n Then
ActiveSheet.Visible = False
End If

よこまやさん

2020/5/3110:02:42

>アクティブシートを閉じた際に

この概念が良くわからないのですが
activesheet.Visible= false
の前に閉じるのですか?

というか閉じるってどういう処理ですか?

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる