Note: The other languages of the website are Google-translated. Back to English

Excelでのユーザー入力に基づいてリアルタイムで列を非表示にする方法は?

Excel で列を非表示にすることは、ほとんどの人にとって一般的なタスクかもしれませんが、特定の入力値に基づいて列を自動的に非表示にしようとしたことがありますか? たとえば、セルにテキスト「AA」を入力すると、列 A が非表示になります。 「BB」と入力すると、列 B と C が非表示になります。 「CC」を入力すると、列 D と E が非表示になります。 「DD」と入力すると、以下のデモのように列 F が非表示になります。 この記事では、Excel で解決するための VBA コードを作成します。

VBA コードを使用したユーザー入力に基づいて、リアルタイムで列を非表示または再表示します

列を非表示または再表示して、VBA コードを使用したユーザー入力に基づいてデータをフィルター処理する


VBA コードを使用したユーザー入力に基づいて、リアルタイムで列を非表示または再表示します

入力値に基づいて特定の列をリアルタイムで非表示にするには、次の VBA コードを適用してください。

1. 列を非表示にするワークシートで、シート タブを右クリックし、 コードを表示 コンテキストメニューから、スクリーンショットを参照してください

2。 オープンで アプリケーション向け Microsoft Visual Basic ウィンドウで、次の VBA コードをコピーして シート(コード) 窓。

VBA コード: ユーザー入力に基づいてリアルタイムで列を非表示にする

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby ExtendOffice
xcell = Range("K1").Value
Select Case xcell
Case "AA": Columns("A").EntireColumn.Hidden = False
Columns("A").EntireColumn.Hidden = True
Case "BB": Columns("B:C").EntireColumn.Hidden = False
Columns("B:C").EntireColumn.Hidden = True
Case "CC": Columns("D:E").EntireColumn.Hidden = False
Columns("D:E").EntireColumn.Hidden = True
Case "DD": Columns("F").EntireColumn.Hidden = False
Columns("F").EntireColumn.Hidden = True
Case Else
Columns("A:G").EntireColumn.Hidden = False
End Select
End Sub
注意:上記のコードでは、 K1 は特定のテキストを入力するセルであり、必要に応じてテキストと列名を変更する必要があります。 さらに、以下のスクリプトを追加するだけで、他の新しい基準を追加できます。
  • ケース "AA": Columns("A").EntireColumn.Hidden = False
  • Columns("A").EntireColumn.Hidden = True

3. 次に、コード ウィンドウを閉じます。 ここで、セル K1 に「AA」と入力し、 入力します キー、列 A は非表示です。 し、 を押す 入力します キー、列 B と C は非表示になります。 他の値を入力するか、コンテンツを削除すると、非表示の列がすぐに表示されます。以下のデモを参照してください。


列を非表示または再表示して、VBA コードを使用したユーザー入力に基づいてデータをフィルター処理する

この例では、入力した製品名に基づいてデータ範囲をフィルター処理します。 「Hoodie」と入力すると、Hoodie の情報のみが表示され、他の列はすぐに非表示になります。 「All」と入力すると、以下のデモのようにすべての列が表示されます。

1. 列を非表示にするワークシートで、シート タブを右クリックし、 コードを表示 コンテキストメニューから、スクリーンショットを参照してください。

2。 オープンで アプリケーション向け Microsoft Visual Basic ウィンドウで、次の VBA コードをコピーして シート(コード) 窓。

VBA コード: 列を非表示または再表示して、ユーザー入力に基づいてデータをフィルター処理する

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby ExtendOffice
    Dim x As Variant, y As String
     If Target.Address = "$K$1" Then
        y = Target.Value
        With Range("B1:H1")
            Application.ScreenUpdating = False
            .EntireColumn.Hidden = (y <> "All")
            If y <> "All" Then
                For Each x In .Cells
                    If x = y Then x.EntireColumn.Hidden = False
                Next
            End If
            Application.ScreenUpdating = True
        End With
    End If
End Sub
注意:上記のコードでは、 K1 特定のテキストを入力するセルです。 B1:H1 フィルタリングする製品名を含む行ヘッダーです。

3. 次に、コード ウィンドウを閉じます。 ここで、セル K1 に製品名を入力すると、対応する列のみが表示され、他の列は非表示になります。 「All」というテキストを入力すると、すべての列が以下のデモのように表示されます。


最高のオフィス生産性ツール

Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます

  • 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
  • スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
  • セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
  • [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
  • 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
  • テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
  • スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
  • ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
  • 300 以上の強力な機能. Office / Excel 2007-2021 および 365 をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 フル機能の 30 日間無料トライアル。 60日間の返金保証。
kteタブ201905

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
officetab下部
コメントを並べ替える
コメント (0)
まだ評価はありません。 最初に評価してください!
ここにはまだコメントが投稿されていません
あなたのコメントを残す
ゲストとして投稿
×
この投稿を評価:
0   文字
推奨される場所

フォローする

著作権©の2009 - WWW。extendoffice.com。 | | 全著作権所有。 搭載 ExtendOffice。 | サイトマップ
MicrosoftおよびOfficeのロゴは、米国MicrosoftCorporationの米国およびその他の国における商標または登録商標です。
SectigoSSLで保護