• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA 列の表示と非表示について)

Excel VBA 列の表示と非表示について

このQ&Aのポイント
  • Excel VBAで列の表示と非表示を行う方法について調べています。90以上の列があるデータを扱っているため、見づらさを感じることがあります。ユーザーフォームからコマンドボタンを使用して一度全ての列を非表示にし、必要な列だけを表示させる方法についてご教示いただけると助かります。
  • Excel VBAを使用して、90以上の列を扱うデータの表示と非表示を制御する方法について教えてください。ユーザーフォームからコマンドボタンで一度全ての列を非表示にし、必要な列だけを表示させる方法を知りたいです。
  • Excel VBAを使用して、90以上の列を効率的に表示と非表示する方法を教えてください。ユーザーフォームとチェックボックスを組み合わせて、必要な列だけを表示させる方法について知りたいです。

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

  • ベストアンサー
noname#203218
noname#203218
回答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

hiromizu0406
質問者

お礼

ありがとうございます!

hiromizu0406
質問者

補足

ありがとうございます。 「というのも、非表示にしたまま表示したい列をどのように確認するのかな?と思いまして。 どこかに対照表などがあるのでしょうか・・・」 実は、ユーザーフォームにチェックボックスを90個作りまして各列の表題を付けていました。 とはいえ、各チェックボックスのコードについてはこれからの状態ですが・・・。 これからではありますが、上記コードを参考にしてみたいと思います。

その他の回答 (2)

  • moon00
  • ベストアンサー率44% (315/712)
回答No.2

うーん、一度に入れる、はずすボタンを作れば、(1)の作業は不要な気がするのですが・・・ というのも、非表示にしたまま表示したい列をどのように確認するのかな?と思いまして。 どこかに対照表などがあるのでしょうか・・・ それともチェックボックスに明記されてるのかな。 表示状態のまま、チェックボックスでチェック。 非表示が多い場合は、一旦全部に入れるボタンでチェックを入れた後、表示したいものだけはずす。 もしくは、チェックを逆転できるボタンを作るかですね。

hiromizu0406
質問者

補足

おぉっ、確かにそうですね! 「チェック=非表示する として 非表示にしたい列が少ない場合⇒表示状態のまま、表示にしたい列のチェックボックスにチェック 非表示にしたい列が多い場合⇒全チェックボックスにチェックするボタンを押す→表示させたい列のチェックボックスにチェック」 という事でしょうか? 因みに各列の表示、非表示設定も含めてコードをご教示頂く事は可能でしょうか? 図々しいお願いではありますが、重ねて是非宜しくお願いします!

  • moon00
  • ベストアンサー率44% (315/712)
回答No.1

全くの非表示にしてしまう、ということでしょうか・・・ 例えばA列からZ列まで一気に非表示ということであれば、 下記コードで実現できます。 Sub Macro1() Columns("A:Z").Select Selection.EntireColumn.Hidden = True End Sub 範囲を変更すれば、お好みの範囲を非表示にできます。 というか、チェックボックスを作るなら、一気にチェックを入れる、はずすボタンを実装する方が ラクなのでは?

hiromizu0406
質問者

補足

「というか、チェックボックスを作るなら、一気にチェックを入れる、はずすボタンを実装する方が ラクなのでは?」 確かにご指摘の通りなんです。 ただし部署によって見たい列の項目が異なる為、マルチに対応が出来つつ、表示にさせたい列だけチェックで表示させる事で作業工程を効率良く出来れば・・・と考えておりました。

関連するQ&A