ここから質問投稿すると、最大4000ポイント当たる!!!! >>

WorksheetオブジェクトのChangeイベントを、他のシートにも反映させる方法をご教授ください。

現在の設定内容です。
①シート1に、1~5を選べるプルダウンを配置。(C7セル)
②プルダウンを選択した際、数字に応じて「行」を非表示/表示する。

こちらは、下記のWorksheet.Changeで設定できました。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$7" Then
If Target.Value = "1" Then
Rows("14:36").Hidden = True
ElseIf Target.Value = "2" Then
Rows("14:36").Hidden = False
Rows("20:36").Hidden = True
ElseIf Target.Value = "3" Then
Rows("14:36").Hidden = False
Rows("26:36").Hidden = True
ElseIf Target.Value = "4" Then
Rows("14:36").Hidden = False
Rows("32:36").Hidden = True
ElseIf Target.Value = "5" Then
Rows("14:36").Hidden = False
Else
End If
End If
End Sub

今回行いたいことは、シート1のプルダウンに連動して、シート2の「行」を表示/非表示したいと思っております。

条件①:シート1とシート2の行は、異なります。
    →プルダウンで「1」を選択した場合、シート1は14行から36行を非表示、シート2は16行から35行を非表示にする等。

条件②:シート2の非表示対象は、連続した行と単独の行が混在します。

説明下手で申し訳ございませんが、よろしくお願いいたします。

「VBA Worksheetオブジェクトの」の質問画像

A 回答 (1件)

イベントが発生するのはシート1のみでいいのですね?


例えば1の場合を例にすると、
・・・
If Target.Value = "1" Then
Rows("14:36").Hidden = True
Sheets("シート2").Rows("14:36").Hidden = True
ElseIf Target.Value = "2" Then
・・・
とシート2の非表示対象となる行を設定すれば良いのです。
※シート名は実際の名前を使用してください。
>、連続した行と単独の行が混在します。
単独の場合は
.Rows(14).
でも可能ですし、なんならとびとびでも設定できます。

老婆心ながら・・・
このような場合は
Select Caseが向いているとおもいますよ。
http://officetanaka.net/excel/vba/statement/Sele …
    • good
    • 0
この回答へのお礼

出来ました。
ありがとうございます!

Select Caseについては、まだ私には難しいです。
勉強させていただきます。

お礼日時:2019/07/27 17:35

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

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


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

人気Q&Aランキング