• ベストアンサー

マクロ 列の非表示

マクロで列の非表示を登録し、実行は出来るのですが、そのマクロを列ごとに非表示/表示で複数登録し実行したところ、うまくいきません。 たとえばMACRO1ではA,C:D列を非表示,MACRO2ではA,B,E:Fを非表示に登録し、MACRO1を実行したあと、MACRO2を実行するとおかしくなります。 解決策はありますか?

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

> MACRO1を実行したあと、MACRO2を実行するとおかしくなります。 おかしくなるとはどういうことを言っているのですか? もしMACRO1でA,C:D列を非表示にしたのがそのまま非表示だというのなら、ちっともおかしくないのですが。 もし、いったん全部の列を再表示して再度指定した列だけを非表示にしたいということを言っているならこんな感じでしょうか。 Sub Macro1() With ActiveSheet .Cells.EntireColumn.Hidden = False .Range("A:A,C:D").EntireColumn.Hidden = True End With End Sub Sub Macro2() With ActiveSheet .Cells.EntireColumn.Hidden = False .Range("A:B,E:F").EntireColumn.Hidden = True End With End Sub

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

Macro1、Macro2をそれぞれ実行するときに Sub test01() If Columns("B").Hidden = True Then MsgBox "すでに非表示" Else Columns("B").Hidden = True End If End Sub を指定各列でチェックしてはどうですか。

関連するQ&A

  • 【マクロ】クリックすると空白を含む列を非表示に

    上司にExcelのデータが見づらいと言われて困っています。 下記のようなマクロやVBAを教えていただけないでしょうか? 例えば、 A2のセルをクリックすると、その行(2行目)から空白セルを検索して、そのセルを含む列を非表示にして、データが入っている列だけを表するようなマクロってないでしょうか? (要は、C2とE2が空白セルのとき、A2をクリックして、A/B/D/F~の列だけ表示されるようになるマクロです。 同様に3行目でも、空白セルがB3、C3なら、A3をクリックした時、A/D/E…列だけ表示されて、B・C列が非常時になるような。) 似たような機能があれば、A2クリックでなく別にボタン等を作っても構いません。 ややこしくて、申し訳ございませんが、本当に困っているので、 どうかよろしくお願いいたします。

  • <文字列マクロについて>

    <文字列マクロについて> 皆さま お力を貸して下さい。 初心者で、何もわからず書いておりますがすみません。 下記の2つのマクロを教えて下さい。 ?横に並んだ「ある行」に在るデータを「列」に変換し、  指定した数だけ並べる    あいうえお    ←A1セルからE1まで5列(これは状況により変わる)       ↓(マクロ実行:3行同じ数だけ並べるという指定)  あ        →A1セルから下にひたすら、同じ文字が続き順に並ぶ  あ  あ  い  い  い  う  う        →A1セルから下に並べる(3行は指定できれば別の数字にも変えたい  う  え  え  え  お  お  お ?規則的に並んだデータのまとまりをセットで移動する。  例だと5つの塊(これは変数とおきたい)    あ A              a  い B              b  う C               c   え D               d  お E              e    ↓(マクロ実行)  あ  い  う  え  お  A  B  C  D  E      ・  ・  ・  ・    a b c d e    

  • マクロを教えてください

    CSVファイルで、     A    B    C    D    E   F 1 444  あああ  123  けけけ 2 555  いいい  456  かかか 3 666  ううう  000        4 山   5 川 上記のようなCSVファイルで3行目のC列には0・D列はブランクです。 そこで3行目でD列がブランクのときは、A列をC列に、B列をD列に持ってきて あいたA列には999B列には@@@を入れたいのです。 そしてもうひとつは、A列をE列にコピーをしてF列はE列の数字以外を持ってきたいのです。 結果は   A      B    C    D   E   F 1 444  あああ  123  けけけ  444 2 555  いいい  456  かかか  555 3 999  @@@  666  ううう  999 4 山                    山 5 川                    川 といった結果のマクロを作りたいです。 どなたか教えてください。よろしくお願いします。

  • 列の値の結合 「エクセルマクロ」

    エクセルにて値の移動をマクロ化しようと奮闘しております。 もしかしたら、マクロにしなくて解決できるかもしれません、、、。 どうか有識者の皆様からお知恵をお借りしたいと思っております。 【現在の環境】 行数:700行 列数:5 【やりたい事】 列:A,B,C,D,Eに値が入っております。 B,C,D,Eの値をAの後に結合したいと思っております。 ■例 それぞれのセル(A~E)に A:s01 B:t02 C:u20 D:j53 E:z12 これをAのセルに、s01t02u20j53z12 という風に文字を結合したいと思っております。 何か解決策の糸口なるものをご教授頂ければ幸いです。

  • エクセルマクロでVLOOKUPのよう列を貼る

    初めましてよろしくお願いします。 シート2に       A     B     ・・・・・・・・・   Z 1   900     5               5 ・   903     40              60 ・    ・       ・               ・ 300 220     1     ・・・        100 301 210     10    ・・・        1000   302 200     15    ・・・         20 ・ ・ ・ が有ります。シート1のE10に210と入力されている場合、マクロを実行するとA列を検索し、シート2のA301の値と一致する301行をシート1のE11から列に変換しコピーされるようにしたいと思います。 シート1結果    A     B     C     D     E 1 2 ・ ・ 10                        210 11                         10 ・                           ・ ・                           ・ 35                        1000  解る方、よろしくお願いします。

  • EXL指定した文字列リストと同一を指定セルに表示

    下記のようなエクセルデータになっています。 表示の関数についてご教授願いますようお願いいたします。 上部の検索条件です(50行くらいあります) A列   B列   C列   D列   E列   F列 a     a     a     b     c 1     1    1     3     1 下部のフィールドです(数百行あります A列   B列   C列   D列   E列   F列 a     a     a     b     c 1     1    1     3     1 2     2    2     E     2 表示したい条件 A列   B列   C列   D列   E列   F列 a     a     a     b     c 1     1    1     3     1 2     2    2     E     2 F列のセルにD列と同じ文字列がある場合、文字列又は”○”で 表示出来たらと思います。 よろしくご教授のほどお願いいたします。

  • Excel2007のマクロで文字列を結合

    Excel2007のマクロで文字列を結合したいのですがうまくいきません。 1、セルA1からU1までデータが1つずつ入ってます。 2、1のデータを3列ずつ結合してA3からG3にコピー。 例えば、セルA1あ、B1い、C1う、D1え、E1お、F1か、ならセルA3あいう、セルB3えおか、のようにマクロで一機にできるソースをお願いします。

  • エクセル 特定セルの足し算をするマクロ

    C列、D列、E列を足し合計をF列に記入するマクロを教えて下さい。 (3行目から値のある行まで。)  A B  C  D  E   F 1 2 3     24  16  19  59となる様に 4     35  49  41 5     22  19  72 6     ・   ・   ・ 7     ・   ・   ・ 宜しくお願いします。

  • Excelのマクロの組み方を教えてください

    3行と2列のデーターの塊があり、これを 1行のデータに並べ替えるにはどうしたらいいでしょうか? ただし 行方向(縦に) 30件、列方向(横に) 20件ほど入っていて、複雑です。 空白の行や列はないものと考えていただいて結構です。 詳細説明 A1からCB1はタイトルなどが入っていて、無視して、 データーの配列が以下の場合 A2 B2 C2 D2 E2 F2 →CB2まで A3 B3 C3 D3 E3 F3 →CB3まで A4 B4 C4 D4 E4 F4 →CB4まで A5 B5 C5 D5 E5 F5→CB5まで A6 B6 C6 D6 E6 F6→CB6まで A7 B7 C7 D7 E7 F7→CB7まで ↓ ↓ ↓ ↓↓ ↓ A120まで CB120まで を A2 A3 A4 B2 B3 B4 C2 C3 C4 D2 D3 D4 ↓ CA2 CA3 CA4 CB2 CB3 CB4 次に A5 A6 A7 B5 B6 B7 C5 C6 C7 D5 D6 D7 ↓ A118 A119 A120 B118 A119 A120 などと並べかえはどのようにマクロを組めばよいですか?

  • エクセルのA列とB列で重複するレコードのみを抽出して別の列に表示させた

    エクセルのA列とB列で重複するレコードのみを抽出して別の列に表示させたい。 エクセルのA列に約1,000行くらいのデータが有ります。 このA列内で重複レコードがあります。 B列に約1,000行くらいのデータが有ります。 B列内でも重複レコードが有ります。 この条件の中で (1)A列にもB列にあるデータすべて (2)A列にしかないデータすべて (3)B列にしかないデータすべて を抽出したいのですが、どんな方法がありますか? それで (1)をC列 (2)をD列 (3)をE列 に並べて表示させたいです。 さらに抽出されたデータで重複レコードの場合は1件のみで表示したいです。 複数の操作を繰り返すのではなく C,D,E列に式を入れるだけで済ませる事は可能でしょうか? よろしくお願いします。 例    A   B    C   D   E 1-001-002--001--004--007 2-002-002--002--006--008 3-001-001--005--010 4-005-007 5-001-005 6-004-005 7-004-008 8-010-007 9-006-007 A列には001が3個、002が1個、005が1個有ります。 B列には001が1個、002が2個、005が2個有ります。 A列にもB列にも有るのは、001と002と005ですから これがC列に表示されます。 でそれぞれA列にもB列にも複数有りますが、1個として判定なので よって、C列には 001 001 001 001 002 002 005 005 と表示ではなく 001 002 005 と表示したい。 次にD列はA列に有る物だけですから 004 006 010 となります。B列には004は2個有りますが同じ値なので 004 004 006 010 では無く004は1個の表示です。 E列はB列のみのデータなので 007 008 です。 同じくB列には007が3個有りますが1個ともなします。 007 007 007 008 では無く 007 008 です。

専門家に質問してみよう