LoginSignup
0
1

More than 5 years have passed since last update.

【VBA】特定セルに任意値がある場合に特定行を非表示化してみる

Posted at

ちょっと使っているツールに組み込みできないかなと思い、ちょっと検証してみる。

-

0.実現させたこと

ある特定のセル(例えば、A1セル)に「aiueo」という値が入っていた場合に、6行目の行を非表示化、ない場合は表示させるようにVBAを組み込みたい。

できれば、動的になるようにしたいが、とりあえず贅沢言わずにその動作ができるかどうかに注力する。

-

1.使うコマンド(関数)

下記のコマンド(関数)で実現することができそうな感じ。

★例)2行目を非表示

Rows(2).Hidden = True

★例)セルを指定して、そのセルがある行を非表示


Range("A1").EntireRow.Hidden = True

再度、表示したい場合はパラメータを false にする。

-

2.やってみる

テスト用にこんなExcelを作成してみる
kobito.1465100294.976926.png

試してみたいことは、
黄色に塗りつぶしている行と列を非表示・表示させること。

コードを書いてみる。

Sub sample_001()
    '7〜10行目を表示
    Rows("7:10").Hidden = False
    'Q〜U列を表示
    Columns("Q:U").Hidden = False

End Sub
Sub sample_002()
    '7〜10行目を表示
    Rows("7:10").Hidden = True
    'Q〜U列を表示
    Columns("Q:U").Hidden = True

End Sub

2016-06-05 13_24_08.gif

動作確認ができたので、今度はA1セルに「aiueo」がある場合に非表示、ない場合に表示になるようにコードを書いてみる

Sub sample_003()

'変数定義
a1 = Range("A1").Value
a2 = "aiueo"

'A1セルの値によって表示制御
If a1 = a2 Then
    Rows("7:10").Hidden = True
    Columns("Q:U").Hidden = True
Else
    Rows("7:10").Hidden = False
    Columns("Q:U").Hidden = False
End If

End Sub

vba_なし.gif

vba_あり.gif

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1