作業ブックのシート名「審査」に
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = True
Sheets("真北").Visible = [L27] = "有"
Sheets("角地").Visible = [L28] = "有"
Application.ScreenUpdating = True
End Sub
のコードを設定しております。
このコードは
指定セルをプルダウン選択で等で「有」にした場合に
非表示シートが表示されるように設定しております。
シート名「審査」にコード設定は変わらず、
このコードを下記のように、指定セル値を違うシートに変更しました、
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = True
Sheets("角地").Visible = Sheets("1").[I26] = "有"
Sheets("真北").Visible = Sheets("1").[I30] = "有"
Application.ScreenUpdating = True
End Sub
しかし、シート名「1」のセル「I26」「I30」をプルダウン選択で「有」に変更しても各非表示シート「真北」「角地」が上手く表示されません。
解決方法を教えてください。
よろしくお願いいたします。
No.1
- 回答日時:
こんにちは
前の質問にも書いたけれど、変更するのではなくてシート1のシートモジュールに記載すれば良いだけです。
なお、Eval自体あまりお勧めできるものではありませんが、
>Sheets("1").[I26]
は、アラビア数字とローマ数字をごちゃ混ぜに書いているようなものなので、やめた方が良いでしょう。
せめて
Sheet(1).Range("I26")
とするか
[シート名!I26]
のどちらかかと。
とは言っても、シートモジュールに記載するのですから、いずれにしろシートの指定は不要になります。
簡単なセンテンスですし、内容が複雑というわけでも無いので、このぐらいを理解できないでVBAを使うのは、かなり危ない気がします。
No.2ベストアンサー
- 回答日時:
こんにちは
諸々、#1様に同感ではありますが、コード内での問題点を挙げておきます
#1様がご指摘されている所は直した方が良いです
タイプが面倒とか身に着けてしまった悪習のであれば、後々必ず困ると思いますので・・
Application.EnableEvents = True はイベント発生の抑止をやめるものです
反対にApplication.EnableEvents = False はイベント発生を止めるコードです
Application.ScreenUpdating = True はスクリーン更新の抑止をやめるものでApplication.ScreenUpdating = False は更新を抑止するものです
使い方がでたらめになっていますので、もしかしたら
テスト中もしくは、他のコード内でApplication.EnableEvents = False
のまま終了しており、
Private Sub Worksheet_Change(ByVal Target As Range)イベントが
発生していないのではないでしょうか。
イミディエイトウィンドウに
Application.EnableEvents = True をコピペ Enterキーで実行するか
sub test ()
Application.EnableEvents = True
end sub
上記プロシージャを実行して シートの値を変えてみてください
*Application.EnableEvents・Application.ScreenUpdating などについて
検索などをして理解を深める事をお勧めいたします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 3 2022/06/10 09:24
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 6 2022/06/08 12:55
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2022/04/01 12:11
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/03/25 08:33
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/06/19 10:08
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 4 2023/05/26 10:43
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/02/02 09:25
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
同じ作業を複数のシートに実行...
-
VBAで大量のファイルをシート名...
-
【ExcelVBA】全シートのセルの...
-
Excel VBA 複数行を数の分だけ...
-
ブック名、シート名を他のモジ...
-
ユーザーフォームに入力したデ...
-
エクセルのマクロについて教え...
-
実行時エラー1004「Select メソ...
-
XL:BeforeDoubleClickが動かない
-
ExcelのVBAを使い、複数シート...
-
IFステートの中にWithステート...
-
【ExcelVBA】動的にボタン、ボ...
-
エクセルのマクロでアクティブ...
-
VBAで指定シート以外の選択
-
エクセルのシート名変更で重複...
-
実行時エラー'1004': WorkSheet...
-
セルの値によって、シート見出...
-
VBA ユーザーフォーム上のチェ...
-
Excel VBA マクロ 先頭行の固定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
同じ作業を複数のシートに実行...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
ExcelVBA シート名を複数セルか...
-
XL:BeforeDoubleClickが動かない
-
実行時エラー'1004': WorkSheet...
-
VBA 存在しないシートを選...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ブック名、シート名を他のモジ...
-
ExcelのVBAのマクロで他のシー...
-
【Excel VBA】Worksheets().Act...
-
エクセルのシート名変更で重複...
-
特定の文字を含むシートだけマ...
-
シートが保護されている状態で...
-
Excel マクロについての相談
-
VBA 検索して一致したセル...
おすすめ情報