Excelでボタン1つで列を非表示にする4つの実践テクニック
この記事では、Excelでボタンを使って列を非表示にする方法をご紹介します。Excelシートでデータを扱う際、不要な列を非表示にすることはよくある操作です。通常は右クリックメニューや「書式」リボンから簡単に行えますが、データセットに大量の列が含まれている場合、コマンドで1つずつ非表示にしていくのは非常に手間がかかります。そこで活躍するのがマクロ(VBA)です。コード内で範囲を指定すれば、いくつでも列をまとめて非表示にできます。さらに、これらのマクロをボタンに割り当てれば、マウスをワンクリックするだけで列の非表示操作が完了します。
Excelでボタンを使って列を非表示にする4つの方法
サンプルとして、氏名・給与・貯蓄などの個人情報を含むデータセットを使用します。

以降のセクションでは、このデータセットの一部の列を非表示にする手順を解説していきます。
1. Columnsプロパティで列を非表示にする
Excelシート上でボタンを使ってコマンドを実行するには、VBA(Microsoft Visual Basic for Applications)でマクロを作成し、それをボタンに割り当てる必要があります。ここでは、VBAのColumnsプロパティを使って、ボタン操作で列を非表示にする方法を説明します。単一の列にも複数の列にも対応できます。
1.1. 単一の列を非表示にする
Columns.Hiddenプロパティを使用して、D列を非表示にしてみましょう。
手順:
- まず「開発」タブを開き、「Visual Basic」を選択します。

- VBAエディターが表示されたら、「挿入」>>「標準モジュール」を選択して新しいモジュールを開きます。

- 次のコードを入力します。
Sub HideByColumnProperty()
Columns("D").Hidden = True
End Sub

このコードを実行すると、D列が非表示になります。
- シートに戻り、「開発」>>「挿入」>>「ボタン(フォームコントロール)」を選択します。

- 作成したマクロを割り当てて、「OK」をクリックします。
- ボタンを右クリックして「テキストの編集」から任意の名前を付けます。

- これでボタンの準備は完了です。

- ボタンをクリックすると、D列が非表示になります。

このように、Columnsプロパティを使えばボタン1つで単一の列を非表示にできます。なお、「挿入」タブ>>「図形」から好きな図形を挿入し、図形を右クリックしてマクロを割り当てる方法でも同様のボタンを作成可能です。
1.2. 複数の列を非表示にする
今度はE列とF列を非表示にしてみましょう。一部の手順は省略するため、先にセクション1.1を確認しておくことをおすすめします。
手順:
- 新しいモジュールを開き、次のコードを入力します。
Sub HideMultipleByColumnProperty()
Columns("E:F").Hidden = True
End Sub

このマクロを実行すると、E列とF列が非表示になります。
- あとはこのマクロをボタンに割り当ててクリックするだけです。

Columnsプロパティを使えば、複数の列もまとめて非表示にできます。
2. Rangeプロパティで列を非表示にする
VBAのRangeプロパティを使っても、同じように列を非表示にできます。こちらも単一・複数の両方に対応しています。
2.1. 単一の列を非表示にする
Range.Hiddenプロパティを使用してD列を非表示にします。
手順:
- セクション1と同じ手順でVBAモジュールを開きます。
- 次のコードを入力します。
Sub HideByRangeProperty()
Range("D:D").EntireColumn.Hidden = True
End Sub

- このマクロを新しいボタンに割り当ててクリックすると、D列が消えます。

Rangeプロパティでも、ボタン1つで単一の列を非表示にできることがわかりました。
2.2. 複数の列を非表示にする
E列とF列を非表示にする場合は、次の手順を実行します。
手順:
- 新しいモジュールに次のコードを入力します。
Sub HideMultipleByRangeProperty()
Range("E:F").EntireColumn.Hidden = True
End Sub

- マクロをボタンに割り当ててクリックすると、E列とF列が非表示になります。

Rangeプロパティでも複数列の非表示が可能です。
3. 選択した列を繰り返し非表示にする
ボタンを押すたびに、選択中の列の隣の列を順番に非表示にしていくこともできます。
手順:
- セクション1と同じ手順でVBAモジュールを開きます。
- 次のコードを入力します。
Sub HideColumnsBySelectionAndRepeatedly()
ActiveCell.Offset(0, 1).Columns("A:A").EntireColumn.Select
Selection.EntireColumn.Hidden = True
End Sub

このコードは、現在選択しているセルの隣の列を非表示にします。
- このマクロを新しいボタンに割り当てます。
- 非表示にしたい列の左隣の列にあるセルを選択して、ボタンをクリックします。ここではE列とF列を非表示にしたいので、D列のセルを選択してからボタンを押します。
- 注意点として、見出し行に結合セルを使っているとコードが正しく動作しない場合があります。その場合はテキストボックスを見出しに使うとスムーズに動作します。

- この操作でE列が非表示になります。

- F列も非表示にしたい場合は、もう一度ボタンをクリックします。

このように、Selectionプロパティを使えばボタンを連続でクリックするだけで、列を次々と非表示にできます。
4. トグルボタンで列の表示・非表示を切り替える
一時的にデータを隠して、後でまた表示したい場合は、トグルボタンにマクロを割り当てるのが便利です。
手順:
- セクション1と同じ手順でVBAエディターを開きます。
- VBAProject内の該当シート(トグル用シート)を開き、次のコードを入力します。
Private Sub ToggleButton1_Click()
Dim mnColumns As String
mnColumns = "E:F"
If ToggleButton1.Value Then
Application.ActiveSheet.Columns(mnColumns).Hidden = True
Else
Application.ActiveSheet.Columns(mnColumns).Hidden = False
End If
End Sub

このコードでは、IFステートメントを使ってColumns.Hiddenプロパティのオン・オフを切り替えることで、ボタンを押すたびに非表示と再表示が交互に切り替わります。
- Ctrl+Sでブックを保存し、「開発」>>「挿入」>>「トグルボタン(ActiveXコントロール)」からトグルボタンを挿入します。

- 「デザインモード」をクリックしてオフにします。シート上にトグルボタンが配置されているのが確認できます。

- トグルボタンをクリックすると、E列とF列が非表示になります。

- もう一度クリックすると、E列とF列が再び表示されます。

トグルボタンを使えば、複数の列を一度に非表示にでき、しかもワンクリックで元に戻せます。列を1つずつ、あるいはコマンドで再表示するのは非効率なので、時間の節約にもなる優れた方法です。
練習用データセット
以下に、この記事で使用したデータセットを示します。ぜひご自身で各手法を練習してみてください。

まとめ
この記事では、Excelでボタンを使って列を非表示にするための、簡単かつ効果的な4つのテクニックをご紹介しました。より良い方法やご質問、フィードバックなどがあれば、ぜひコメント欄でお聞かせください。今後の記事作成の参考にさせていただきます。その他のご質問は、ExcelDemyのウェブサイトをご覧ください。
関連記事
- Excel VBA:セルの値に基づいて列を非表示にする(15の例)
- データのない列を非表示にする4つの効果的な方法
- Excelの非表示列をすべて一度に再表示する4つのクイックな方法
- プラス・マイナス記号でExcelの列を非表示にする2つの方法
- Excelで列を再表示する8つの方法
-
ExcelでXMLを列に変換する4つの方法|初心者でもできる完全ガイド
このチュートリアルでは、ExcelでXMLデータを列に変換する4つの実用的な方法をご紹介します。いずれの方法も大規模なデータセットに対応しており、XMLデータから必要な値を効率よく抽出できます。さらに、本記事で解説するツールやテクニックは、その他のExcel作業全般にも役立つ内容となっています。 練習用ワークブックはこちらからダウンロードできます。 ExcelでXMLを列に変換する4つの方法 手順を分かりやすく説明するため、比較的シンプルなXMLデータセットを使用します。データセットは約7行×2列で構成され、すべてのセルは初期状態で「標準」形式に設定されています。列は「サイトURL」と「日付」
-
Excelの数式でテキストを自動的に列に分割する3つの方法
Excelでデータを管理していると、1つのセルに入力されたテキストを複数の列に分割して整理したい場面がよくあります。「区切り位置」ウィザードやVBAマクロを使う方法もありますが、数式を使えば元データを変更せずに自動的に分割でき、データを更新しても結果が自動で反映されるという大きなメリットがあります。この記事では、Excelの数式でテキストを自動的に列に分割するための3つのシンプルな方法を、具体的な手順とともにわかりやすく解説します。 数式でテキストを列に自動分割する3つの方法 ここからは、Excelの数式を使ってテキストを列に分割する3つの方法を順番に紹介します。目的やデータの形式に応じて、最