小さなお店ではスタッフのシフト表をエクセルで管理している事が多いと思いますが、時間別出勤リストを表示させるときにお休みの人は非表示にして見やすくしたいと思いませんか?
Excel-VBAを使えば簡単に不要な行や列を非表示にしたり再表示させる方法をご紹介します。
Hiddenプロパティ
Hiddenプロパティを使う事により、個別の行や列に対して表示・非表示の設定ができるようになります。
これにより、IFステートメントを組み合わせることで、条件に応じて非表示にしたり、再表示させることが簡単にできるようになりますので、まずは基本的な使い方からご紹介します。
決まった1行を非表示にする
例えば3行目を非表示にするだけならば、ユーザーフォームに配置したコマンドボタンに下記VBAコードを書くだけです。
Private Sub CommandButton1_Click()
Rows(3).Hidden = True
End Sub
- コマンドボタン1がクリックされたら
- 3行目を非表示にする
- マクロ記録終了
たったこれだけですが、実用的ではありませんね。
決まった範囲の行を非表示にする
これも実際には使っていないのですが、複数行(例えば3行目~5行目)を非表示にするには、下記のようなVBAコードを記載します。
Private Sub CommandButton1_Click()
Rows(“3:5”).Hidden = True
End Sub
- コマンドボタン1がクリックされたら
- 3行目~5行目を非表示にする
- マクロ記録終了
非表示した行を表示させる
次に、非表示にしてある行を表示させるには、Trueの部分をFalseに代えるだけです。
決まった1列を非表示にする
行の次は列の日表示させる方法をご紹介します。
行の時と同様に3列目を非表示にするだけならば、行の部分「Rows」を列を表す「Columns」に置き換えて、3列目はC列に代えるだけです。
Private Sub CommandButton1_Click()
Columns(“C”).Hidden = True
End Sub
- コマンドボタン1がクリックされたら
- C列を非表示にする
- マクロ記録終了
行の時と異なるのは、()内が数字ならば(3)と記載するだけなのですが、列の場合はアルファベットなので(“C”)と””が必要になることぐらいです。
決まった範囲の列を非表示にする
複数列の場合も行の時と同じなので3列目から5列目は、C列~E列となります。
Private Sub CommandButton1_Click()
Columns(“C:E”).Hidden = True
End Sub
このように行と列を非表示・表示させ方法は同じように扱うことができますし、表示方法も同じTrueをFalseにするだけです。
そして、行と列を同時に行うならば続けてVBAコードを記載すれば可能です。
Private Sub CommandButton1_Click()
Rows(“3:5”).Hidden = True
Columns(“C:E”).Hidden = True
End Sub
それでは、次に実用的な条件に応じて行を非表示にする例としてのVBAコードをご紹介します。
条件に応じて行を非表示にする
セルA1の値が0の時に非表示にして、それ以外ならば表示させるVBAコードです
Private Sub CommandButton1_Click()
If Range(“A1”).Value = 0 Then
Rows(1).Hidden = True
Else
Rows(1).Hidden = False
End If
End Sub
- コマンドボタン1がクリックされたら
- もしセルA1の値が0だったら
- 1行目を非表示にする
- そうでなかったら
- 1行目を表示する
- IFステートメント終了
- マクロ記録終了
このように使えば条件に応じて表示・非表示ができますよ。
関連記事
-
セルの操作
入力済み最終行を見つけて追記・削除する方法
エクセルVBAのユーザーフォームで一発検索する ボウリング場のリーグ戦成績表でも使っているエクセル。 エクセルには参加者のスコアーなど様々なデータを入力しますが、… -
セルの操作
エクセルVBAで指定した範囲の複数セルの値を一括クリアする方法
入力済みセルの値を消去することがあり、1個1個手作業で空白にするのが面倒だと思ったことはありませんか? Excel-VBAのコマンドボタンを押すことにより、指定した複数… -
セルの操作
複数のセルの値を別のセルにコピーする
VLOOKUPでは数式の値は検索不能? ボウリングのリーグ戦の成績表をエクセルで作っていて、リーグ戦では一般的に初回はレーン抽選によって対戦相手が決まり、2週目以降は… -
セルの操作
エクセルVBAでリストの中から不要な行や列を非表示にする方法
小さなお店ではスタッフのシフト表をエクセルで管理している事が多いと思いますが、時間別出勤リストを表示させるときにお休みの人は非表示にして見やすくしたいと思い… -
セルの操作
エクセルVBAで複数セルを一括で結合・解除を繰り返し処理する方法
エクセルの表を印刷するには見栄えの為にセルの結合を行ったら、並べ替えをするとエラーになって困ったことありませんか? Mergeメソッドを書き加えれば、自動的にセル… -
セルの操作
エクセルで苗字と名前2つのセルの値をくっつける(セルの値の結合)
CSVファイルなどを取り込んだ時に、苗字と名前が別々のセルに分かれていることが多いと思いますが、1つのセルに結合して表示したいと思ったことありませんか? 例えば… -
テキストボックス
複数のテキストボックスの値を一括で複数のセルの値に書き換える方法
セルA1~A10の値をまとめてテキストボックス1~10に転記する ボウリング場のリーグ戦の成績表でも使っているエクセルで、リーグ戦のルールなどを設定するユーザーフォ…
紅葉スポット
-
四方木ふれあい館から四方木不動滝の紅葉絶景へ安房天津駅からバス
県道から山道に入り林の中にある秘境で、水量によって左右に分かれることから夫婦滝とも呼ばれています。 山深い大自然の中を散策していく四方木不動滝と紅葉がひそかな… -
奥日光湯滝や湯ノ湖へ東武バスの湯元温泉フリーパス終点の観光名所へ
【紅葉見頃】 10月中旬~10月下旬 紅葉時期の日光なのに空いている穴場スポットの湯滝や湯ノ湖をご存知ですか? 中禅寺湖周辺から戦場ヶ原を通り過ぎてさらに奥へ進む… -
佐白山麓公園の笠間城跡へバスで友部駅・笠間駅から滞在時間40分
紅葉の名所で茨城県を真っ先に探す人は少ないと思いますし、見つけたとしても花貫渓谷や袋田の滝、そして次に水戸偕楽園のもみじ谷や筑波山が茨城県内の紅葉スポットと… -
埼玉県指定名勝地の中津峡へ奥秩父を代表する紅葉スポット
秩父エリアトップクラスの絶景と言われている奥秩父の中津峡は、約10㎞もの中津川沿いの紅葉が見られて、その長さは約10㎞と言われて、西武秩父駅からのバス車窓からも… -
茨城県大子町の永源寺へ常陸大子駅から徒歩圏内の紅葉スポットへ
【紅葉見頃】 茨城県の大子町に紅葉名所の「永源寺」があり、境内を埋め尽くすほどのもみじの木があることから「もみじ寺」と呼ばれています。 近くには名瀑で有名な… -
群馬甘楽町の紅葉山公園へのバスが廃止でも1回500円の愛タク利用へ
【紅葉見頃】11月上旬~11月中旬 富岡市のコミュニティーバスが2020年で廃止になり利用しづらくなりましたが、代わりに2021年から登場したデマンドタクシーがあるので…