こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルマクロで指定した列を非表示にするには

A1、B1、C1、・・・のセルに、1を入力した時、その列を非表示にするマクロを教えて下さい。
マクロ作成に当たって、条件が不足する場合は、その旨ご指摘下さい。

投稿日時 - 2013-09-18 20:08:26

QNo.8269961

すぐに回答ほしいです

質問者が選んだベストアンサー

こんばんは!
非表示にするマクロは簡単ですが、再表示させる必要はないのでしょうか?

シートモジュールになります。

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Rows(1)) Is Nothing Or Target.Count <> 1 Then Exit Sub
If Target = 1 Then
Target.Columns.Hidden = True
End If
End Sub

※ 手作業で列の再表示はできますが、余計なお世話かもしれませんが
↓のコードが再表示のコードです。
これは手動でマクロを実行してください。

Sub 再表示()
ActiveSheet.Columns.Hidden = False
End Sub

こんな感じではどうでしょうか?m(_ _)m

投稿日時 - 2013-09-18 20:36:50

補足

早速試してみたんですが、シートモジュールをどこに記述し、動かすためにはどうしたら良いかがわかりません
基本が判ってなくて恐縮ですが、教えて下さい

投稿日時 - 2013-09-19 05:25:16

お礼

ありがとうございました
目的を達成しました

投稿日時 - 2013-09-21 18:44:52

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

No.1です。
VBE画面を出す方法ですが、何通りかあります。
一般的な方法としては

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → 表示されるのがVBE画面ですので

そこに前回のコードをコピー&ペースト → Excel画面に戻り1行目にデータを入力してみてください。
「1」を入力した時点でマクロが走ります。

※ 「再表示」のコードは標準モジュールでもよいですし、
同じSheetのシートモジュールでも構いません。(すでにあるコードの下へコピー&ペースト)
再表示のマクロはこちらで操作してやる必要があります。
Alt+F8キー → マクロ → マクロ実行です。m(_ _)m

投稿日時 - 2013-09-19 08:28:12

ANo.2

とりあえず以下のようなものではいかがでしょう

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Value = 1 And Target.Row = 1 Then
Columns(Target.Column).EntireColumn.Hidden = True
End If

End Sub

投稿日時 - 2013-09-18 20:52:16

あなたにオススメの質問