作業ブックのシートに
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
途中省略
If Range("$ER$3").Value = "■" Then
Call Accessシート表示
End If
End Sub
を設定しております。
指定セルに「■」が表示されるとマクロ「Accessシート表示」が実行されるのですが、
作業の中で、マクロ「Accessシート非表示」を実行して「シート名:Access」を非表示にした後、
同じシートの指定セル以外のセルを変更した場合にもマクロ「Accessシート表示
」が実行されてAccessシート表示が表示されてしまいます。
マクロ「Accessシート非表示」を変更して、一度、シート名:Accessを非表示にした後は、手動で表示にしない限り、このシートを非表示出来る方法があれば教えてください。
現状のマクロ
Sub Accessシート非表示()
Worksheets("Access").Visible = False
End Sub
以上となります。
よろしくお願いいたします。
No.4ベストアンサー
- 回答日時:
プルダウンならばWorksheet_Changeイベントは発生しますので
#2様の回答で良いと思います
BAは既に回答されているので追記の部分の説明です
私の回答は >表示される を 深読みしたもので(現状もトリガーを特定していないから)
数式の解で表示した場合 Worksheet_Changeイベントが発生しないと記憶しているためのものです
If Range("$ER$3").Value = "■" Then
Call Accessシート表示
End If
If Range("$ER$3").Value = "■" Then 部分に条件
Target(変更されたセル)がER3セルである
を加えればよい事になります
途中省略があるので
1行ですが
If Not Intersect(Range("ER3"), Target) Is Nothing And Target.Value = "■" Then Call Accessシート表示
とか
If Target.Address = "$ER$3" And Target.Value = "■" Then Call Accessシート表示
とかでも同様の処理になるかと・・・思います
いずれにしても
問題解決に 非表示プロシージャを触る必要は無いのではという事ですね
詳しく説明していただきましてありがとうございます。
№2の方と合わせて、設定しまして、上手くできました。
ありがとうございます。
No.6
- 回答日時:
こんにちは
ご質問文の文字通りの内容を実現するなら・・
1)どこかのセル(できれば非表示シートや、非表示セルが望ましい)を
フラグとして設定しておく。
2)マクロから対象シートを非表示にした際には、フラグをセットする。
3)対象シートを表示するマクロは全て、フラグを参照してセットされて
いる場合には表示しないように変更しておく。
4)対象シートの「表示イベント」でフラグをクリア。
といった仕組みすることで可能と思います。
とは言え、想像するところ、こんなつぎはぎ的なことをしなくても、整理さえすれば「やりたいこと」を実現するスマートな方法はありそうに思います。
(何がどうなっているのか不明なので、当方にはよくわかりませんけれど・・)
No.5
- 回答日時:
読み返ししたら
コピペしたので Call Accessシート表示 となっていますが
Call Accessシート非表示 ですかね・・
やっぱり変ですね
> 手動 で表示にしない限り、
であれば Call Accessシート表示は不要です(最もコード書いてないけど)
いつ非表示にするかわかりませんが
Private Sub Workbook_Open()
Worksheets("Access").Visible = False
End Sub
だけで
Worksheet_Changeイベントで
Worksheets("Access").Visible = True は不要?
No.3
- 回答日時:
こんにちは
ご質問の内容には矛盾があり理解できませんが おそらく
Accessシート非表示の内容を変更するのではなく
If Range("$ER$3").Value = "■" Then
Call Accessシート表示
の条件を考察するべきでしょう
文中に
>指定セルに「■」が表示されるとマクロ「Accessシート表示」が実行される
とあるので セルER3には 数式が入っているものと推測します
Worksheet_Changeイベントは数式による変更をトリガーしなかったと思うので
この数式の条件セル(入力される参照元セル)が変更されたときに
現状条件とTarget.Address条件を加えてCall Accessシート表示を実行すれば
例えばER3セルに入っている数式 =IF(AA3="","","■")
AA3も数式の場合は参照元をトレースで入力元セルを見つけてください
If Target.Address(0, 0) = "AA3" And Range("$ER$3").Value = "■" Then
Call Accessシート表示
End If
>同じシートの指定セル以外のセルを変更した場合にもマクロ「Accessシー>ト表示」が実行されてAccessシート表示が表示されてしまいます。
この処理は発生しないと思います
>一度、シート名:Accessを非表示にした後は
この 一度 の条件がどの様なものなのかわかりませんが
>手動で表示にしない限り、このシートを非表示出来る方法があれば教えてください。
ならば、
If Range("$ER$3").Value = "■" Then
Call Accessシート表示
End If
を消せばよい事になりますね
推測もありますので参考程度で
No.2
- 回答日時:
少し質問の意味が読み取りにくいですが、もしER3セルが「■」に変更された時だけ、「Accessシート表示」処理を呼びたいなら、以下のようにされてはどうでしょうか。
Intersectは複数の範囲の積集合を求めるメソッドです。意味が違っていたらごめんなさい。
Private Sub Worksheet_Change(ByVal Target As Range)
Set insect = Application.Intersect(Range("ER3"), Target)
If insect Is Nothing Then
' 何もしない
Else
If Range("ER3").Value = "■" Then
Call Accessシート表示
End If
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
高校生はアルバイトするべきだろうか?賛成だったら「賛」、否定だったら「否」を文頭においてあなたの意見を教えてください。
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
VBAコードについて教えてください。
Visual Basic(VBA)
-
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
-
4
エクセルのVBAコードについて教えてください。
Visual Basic(VBA)
-
5
マクロの記録を使用したマクロの実行について
Visual Basic(VBA)
-
6
VBA指定行削除
Visual Basic(VBA)
-
7
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
8
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
9
Excel(M365) Vlookup/セル反転(VBA)について
Visual Basic(VBA)
-
10
久しぶりのプログラミング
Visual Basic(VBA)
-
11
VBAでCOPYを繰り返すと、処理が途中でアイドルする原因はなんでしょうか
Visual Basic(VBA)
-
12
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
13
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
14
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
15
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
16
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
17
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
18
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
19
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
20
Word VBA MSGBOX 内で降順表示
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのマクロについて教え...
-
VBA 入力箇所指定方法
-
エクセルのVBAコードについて教...
-
エクセルのマクロについて教え...
-
配列のペースト出力結果の書式...
-
エクセルのマクロについて教え...
-
EXCEL vbaでシート上に配置した...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
VBA 別ブックからコピペしたい...
-
Excel VBA マクロ あるフォルダ...
-
エクセルのマクロついて教えて...
-
エクセルのマクロについて教え...
-
vba 別ブックに転記
-
VBA 別ブックから条件に合うも...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ExcelVBA シート名を複数セルか...
-
Outlookの「受信日時」「件名」...
-
VBAの質問です、複数のテキスト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 別ブックからコピペしたい...
-
Vba ファイル書き込み時に書き...
-
Excel_VBAについて質疑です。(...
-
VBAの間違い教えて下さい
-
VBA コードどこがおかしいですか?
-
VBA 円グラフ 特定条件に一致し...
-
VBA 別ブックから条件に合うも...
-
pdfファイルの複数添付 引数の型
-
【ExcelVBA】インデックスが有...
-
ExcelVBAマクロで実行した時の疑問
-
Vba UserformからExcelシートの...
-
VBA初心者です。次のVBAコード...
-
Outlookの「受信日時」「件名」...
-
Excel 範囲指定スクショについ...
-
vbs ブック共有を解除
-
配列のペースト出力結果の書式...
-
Excel VBAで値を変えながら、pd...
-
VB.net(VB)で、フォームにExcel...
-
vbaにてseleniumを使用したedge...
-
ExcelVBA シート名を複数セルか...
おすすめ情報
回答ありがとうございます。
詳しく教えて頂きましてありがとうございます。
記者が教えて頂いたコードで再度、質問をさせてください。
例えばER3セルに入っている数式 =IF(AA3="","","■")
AA3も数式の場合は参照元をトレースで入力元セルを見つけてください
とありますが、
ER3に数式では無く、プルダウンで「■」を選択しております。
この場合は、どのようになりますでしょうか、
何度も申し訳ありません。
よろしくお願いいたします。
何時も助けて頂きましてありがとうございます。
勝手ですが、今回の質問とは別に先日より色々と質問を繰り返して、
未だ、未解決な事が有ります。今週末に一度、整理をし、週明けに再度
質問をさせて頂きましと思いますが、助けて頂けますでしょうか。
勝手を言って申し訳ありません。
よろしくお願いいたします。
先にお礼をしてしまいましたので、
改めて
何時も適切なアドバイスをありがとうございます。
助かりました。