- ベストアンサー
エクセルマクロで指定した列を非表示にするには
A1、B1、C1、・・・のセルに、1を入力した時、その列を非表示にするマクロを教えて下さい。 マクロ作成に当たって、条件が不足する場合は、その旨ご指摘下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! 非表示にするマクロは簡単ですが、再表示させる必要はないのでしょうか? シートモジュールになります。 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
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
No.1です。 VBE画面を出す方法ですが、何通りかあります。 一般的な方法としては 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → 表示されるのがVBE画面ですので そこに前回のコードをコピー&ペースト → Excel画面に戻り1行目にデータを入力してみてください。 「1」を入力した時点でマクロが走ります。 ※ 「再表示」のコードは標準モジュールでもよいですし、 同じSheetのシートモジュールでも構いません。(すでにあるコードの下へコピー&ペースト) 再表示のマクロはこちらで操作してやる必要があります。 Alt+F8キー → マクロ → マクロ実行です。m(_ _)m
- kmetu
- ベストアンサー率41% (562/1346)
とりあえず以下のようなものではいかがでしょう 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
お礼
ありがとうございました 目的を達成しました
補足
早速試してみたんですが、シートモジュールをどこに記述し、動かすためにはどうしたら良いかがわかりません 基本が判ってなくて恐縮ですが、教えて下さい