【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード

2時間にらめっこしていますがずっと黄色バーが消えません・・・。

B列のデータとC列のデータ
B列のデータとD列のデータ・・・と見比べる必要があります。

そこで、見比べやすくするためにC列~N列までを順番に列の非表示を行いたいのです。
そして、可能であれば一旦非表示にした列も逆順に再表示を行ないたいです。

for~NextとHiddenの組み合わせになるかと思うのですが
うまくいきません。
ご教示いただければさいわいです。

A 回答 (5件)

No.2です。



>使用者の任意で1列ずつ非表示されるようにしたいのです

マクロを実行するたびにC列から順に非表示にするようにしてみました。

Sub 非表示()
Dim i As Long, j As Long
For j = 14 To 3 Step -1
If Columns(j).Hidden = True Then Exit For
Next j
If j < 14 Then
Columns(j + 1).Hidden = True
End If
End Sub

尚、再表示も必要だと思うので↓が再表示になります。

Sub 再表示()
ActiveSheet.Columns.Hidden = False
End Sub

※ 再表示は1列ずつの再表示ではなく、列すべてが再表示されます。

>「-」ボタンを使用者が押下すると非表示になり・・・
アウトラインのような感じをお望みなのでしょうかね?
この辺がよく判らないので単純なマクロにしていますが、
ダブルクリックイベントなどにすれば対応できるような気がします。m(_ _)m
    • good
    • 0
この回答へのお礼

おおお。
ありがとうございます!!
非表示に関しては、まさに思い描いていた通りになりました。
再表示もご提示いただいたものの方が潔いかもしれませんw

前回も今回も最初の説明も拙いのにお付き合いくださって
ありがとうございます。

お礼日時:2018/06/05 22:00

ご希望のものとはちょっと違うので、お気に召さなければ読み捨てて下さい。


「ウィンド枠の固定」ってご存知ですか?VBAなんて大掛かりな仕組みを作らなくても十分対応できるかと・・・。
    • good
    • 0
この回答へのお礼

おはようございます。
ご提案ありがとうございます。
ただ、同じシート内で他のところにウィンド枠の固定を使いたいので。
ありがとうございました。

お礼日時:2018/06/08 05:08

No1です。


>ですので、「+」ボタンでC列~以降を順番に非表示にすることで
>B列と本来ミス内容が含まれる列を隣同士に並べたいのです。

「+」ボタンとは、添付図のようなコマンドボタンのことを言われているのでしょうか?(添付図の赤線で囲んだボタン)
もし、そうであれば、このボタンが1つなら、1つのマクロしか割り当てられません。
1つのマクロでは1つの機能(例えばC列を非表示にする)のみですので、
もし、他の機能(C,D列を非表示にする)とか更に他の機能(非表示にした列を再表示する)については、他のマクロが
必要になるかとおもいますが、いかがでしょうか。
「列を1つずつ非表示にしたい」の回答画像3
    • good
    • 0
この回答へのお礼

tatsu99さん
ありがとうございます。
おっしゃるとおりです、「+」と「-」のボタンを作成する予定です。
「-」を押下するとC列以降が1つずつ非表示になり
「+」を押下すると非表示になっている列が再表示される
というように考えております。

お礼日時:2018/06/05 19:49

こんばんは!



>B列のデータとC列のデータ
>B列のデータとD列のデータ・・・と見比べる必要があります。

とは、行ごとの検索(見比べ)になるのでしょうか?
① すなわち、B列2行目?(1行目が項目行になっているコトが多いので)からB列最終行までを対象に
各行ごとに判断するのか?

② 質問文では一致なのか不一致なのかが書いてありませんね。
B列と一致する場合のC~N列、それとは逆に不一致の場合のC~N列を非表示にするのか?

この辺が判らないとコードの記載のしようがありません。m(_ _)m
    • good
    • 0
この回答へのお礼

前回もご回答いただいた方ですね。
いつもありがとうございます。

  B列    C列    D列    E列
1  ABCDE   ABCDE   ABCDE   ABCED
2  BCDEF   BCDEF   BCDEF   NCDEF  
3  HIJKE   HIJKD   HIJKE   HIJKR

C列の3行目にミス
D列はミスなし
E列の1行目と2行目と3行目にミス

前回は、B列とC列以降に異なる値の場合に背景色をつけたいと
質問をさせていただきました。

今回は、B列とC列を見比べた後にC列、次にミスのないD列を
「-」ボタンを使用者が押下すると非表示になり
B列の隣にE列が表示されて見比べやすくしたいのです。
※因みに、ミスのないD列も見比べることは可能にしたいので
使用者の任意で1列ずつ非表示されるようにしたいのです
非表示にして

お礼日時:2018/06/05 19:28

>そこで、見比べやすくするためにC列~N列までを順番に列の非表示を行いたいのです。


>そして、可能であれば一旦非表示にした列も逆順に再表示を行ないたいです。
1回のマクロの操作で非表示にするのは1列(例えばC列)のみですよね。
それなら手作業で行っても問題ないと思いますが、マクロにこだわる理由は何でしょうか。
また、マクロで行うにしても、
①どの列を対象にするかの情報
②その列を非表示にするのか、元にもどすのかの情報
を外部から与える必要があるかと思いますが、それについてはどのように考えてますか。
    • good
    • 0
この回答へのお礼

ありがとうございます。
今作っているツールはミス内容の確認のために使う予定です。
使用者はあまりExcelが得意ではない方が多く「列の非表示」、
「列の再表示」を素早く行うこと、ショートカットを行うことが
難しいと考えています。
ミスを見つけることではなく、素早く見つけてどうやって同じ
ミスを繰り返さないかを考える時間に時間を費やせるように
マクロ化することを考えております。(私も使用者の一人です。)

B列に回答が入っているのは確定です。
C列~N列に使用者の回答が入っております。
B列とC列を見比べる必要があるときもあれば
B列とE列を見比べる必要があるときもあります
ですので、「+」ボタンでC列~以降を順番に非表示にすることで
B列と本来ミス内容が含まれる列を隣同士に並べたいのです。

お礼日時:2018/06/05 18:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!