
Excel VBA 列の表示と非表示について
いつも参考にさせて頂いています。
現在扱っているデータの列が90以上あり、データとしては便利なのですが時に見辛く感じる事があります。
(1).ユーザーフォームからコマンドボタンで一度全ての列を非表示にする。
(2).(1)を行ってからチェックボックスで表示させたい列を表示させる。
といった行程でVBAを組む事は可能でしょうか?
列の表示と非表示について自分なりに調べてみたのですが、消したい列をチェックボックスで消す方法は見つけたのですがそれでは90項目の列の中で5項目だけが必要な場合85回チェックを入れなくてはならなくなり、もう少し効率的な方法があればと考えております。
方法について分かる方は、例をご教示いただけますでしょうか?
宜しくお願いします。
No.3ベストアンサー
- 回答日時:
下記マクロは,列番号1~90までの間で、選択された列(選択したセルでは無いのでお間違え無きように)以外の列を非表示にします。
チェックボックスを利用されるのであれば、 変数SelectCOLに表示させたい列番号、変数iに表示させる列数を指定すれば利用可能ではないでしょうか。
Sub Hidden_col()
Dim c As Range
Dim i, j, k, FLAG As Integer
Dim ColNo As Integer
Dim SelectCOL()
ColNo = 90
ReDim SelectCOL(ColNo)
i = 1
For Each c In Selection.Columns
SelectCOL(i) = c.Column
i = i + 1
Next c
For j = 1 To ColNo
FLAG = 0
For k = 1 To i
If j = SelectCOL(k) Then FLAG = 1: Exit For
Next
If FLAG = 0 Then Columns(j).EntireColumn.Hidden = True
Next
End Sub
この回答への補足
ありがとうございます。
「というのも、非表示にしたまま表示したい列をどのように確認するのかな?と思いまして。
どこかに対照表などがあるのでしょうか・・・」
実は、ユーザーフォームにチェックボックスを90個作りまして各列の表題を付けていました。
とはいえ、各チェックボックスのコードについてはこれからの状態ですが・・・。
これからではありますが、上記コードを参考にしてみたいと思います。
No.2
- 回答日時:
うーん、一度に入れる、はずすボタンを作れば、(1)の作業は不要な気がするのですが・・・
というのも、非表示にしたまま表示したい列をどのように確認するのかな?と思いまして。
どこかに対照表などがあるのでしょうか・・・
それともチェックボックスに明記されてるのかな。
表示状態のまま、チェックボックスでチェック。
非表示が多い場合は、一旦全部に入れるボタンでチェックを入れた後、表示したいものだけはずす。
もしくは、チェックを逆転できるボタンを作るかですね。
この回答への補足
おぉっ、確かにそうですね!
「チェック=非表示する として
非表示にしたい列が少ない場合⇒表示状態のまま、表示にしたい列のチェックボックスにチェック
非表示にしたい列が多い場合⇒全チェックボックスにチェックするボタンを押す→表示させたい列のチェックボックスにチェック」
という事でしょうか?
因みに各列の表示、非表示設定も含めてコードをご教示頂く事は可能でしょうか?
図々しいお願いではありますが、重ねて是非宜しくお願いします!
No.1
- 回答日時:
全くの非表示にしてしまう、ということでしょうか・・・
例えばA列からZ列まで一気に非表示ということであれば、
下記コードで実現できます。
Sub Macro1()
Columns("A:Z").Select
Selection.EntireColumn.Hidden = True
End Sub
範囲を変更すれば、お好みの範囲を非表示にできます。
というか、チェックボックスを作るなら、一気にチェックを入れる、はずすボタンを実装する方が
ラクなのでは?
この回答への補足
「というか、チェックボックスを作るなら、一気にチェックを入れる、はずすボタンを実装する方が
ラクなのでは?」
確かにご指摘の通りなんです。
ただし部署によって見たい列の項目が異なる為、マルチに対応が出来つつ、表示にさせたい列だけチェックで表示させる事で作業工程を効率良く出来れば・・・と考えておりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルでフォームのチェックボックスを使用した日付表示切替を作りたい 3 2023/07/11 10:47
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
- Visual Basic(VBA) EXCEL VBAで教えてください。 1 2022/12/22 04:20
- Visual Basic(VBA) VBAで列の再表示設定 1 2023/04/25 10:19
- Visual Basic(VBA) 【Excel VBA】条件に合った行の表示・非表示を行う方法 3 2023/03/18 12:31
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- Excel(エクセル) Libreoffice calcで人名を取り消し線を入れたい。 2 2022/09/10 15:27
- Excel(エクセル) Excelのテーブルについて 6 2023/07/07 08:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
IIF関数の使い方
-
Cellsのかっこの中はどっちが行...
-
Changeイベントでの複数セルの...
-
vba 2つの条件が一致したら...
-
【VBA】複数行あるカンマ区切り...
-
SpecialCells(xlCellTypeConsta...
-
VBAを使って検索したセルをコピ...
-
VBAで、離れた複数の列に対して...
-
VBA 何かしら文字が入っていたら
-
オートフィルタをマクロで作成...
-
VBAコンボボックスで選択した値...
-
データグリッドビューの一番最...
-
VBAで、特定の文字より後を削除...
-
【VBA】2つのシートの値を比較...
-
マクロについて。S列の途中から...
-
VBA 列が空白なら別のマクロへ...
-
重複データをまとめて合計を合...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで、あるセルの値に応じて...
-
Worksheets メソッドは失敗しま...
-
vba 2つの条件が一致したら...
-
B列の最終行までA列をオート...
-
IIF関数の使い方
-
Cellsのかっこの中はどっちが行...
-
【VBA】2つのシートの値を比較...
-
VBAのFind関数で結合セルを検索...
-
URLのリンク切れをマクロを使っ...
-
文字列の結合を空白行まで実行
-
VBA 何かしら文字が入っていたら
-
VBAを使って検索したセルをコピ...
-
【Excel VBA】 B列に特定の文字...
-
VBAで指定範囲内の空白セルを左...
-
Changeイベントでの複数セルの...
-
VBAで、離れた複数の列に対して...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
rowsとcolsの意味
-
DataGridViewに空白がある場合...
おすすめ情報