• ベストアンサー

結合セルを含む列の非表示方法

結合セルを含んだ範囲で、列の非表示の方法で困っています。 いまA1:D1が結合されています。 B:C列を非表示にしたいのですが、結合セルがある為にA:Dが全て非表示になってしまいます。 結合されたセルを無視して、B:C列だけを非表示にする方法はどの様にしたらいいのでしょうか。 宜しくお願い致します。 Sub test() Columns("B:C").Select With Selection.EntireColumn .Hidden = True End With End Sub

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

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

>結合されたセルを無視して 完全にに無視するわけにはいきません。B:C列の分は縮みます。 Columns("B:C").Select ↓ Range("B2:C2").Select では?

ae-1sp
質問者

お礼

判りにくい書き方で申し訳有りません。 この方法で出来ました! ありがとうございます。

その他の回答 (1)

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

何のどこが質問か判らない。 >結合されたセルを無視して、B:C列だけを非表示にする方 とは >結合されたセルを無視して とは第1行目だけそのままB,C列を表示してのこと? そんなのできるわけが無い。別途オブジェクトなどを貼り付けるやカメラ機能でごまかさないと出来ないでしょう。 ーー もうひとつ Sub Macro2() Columns("B:C").EntireColumn.Hidden = True End Sub を実行するとB,C列が非表示になった。望むところ。 ーー Sub Macro1() Columns("B:C").Select Selection.EntireColumn.Hidden = True End Sub だとA-D列が非表示になった。私には理由不明。 元はシート上で操作をしてマクロの記録を取ったものを再実行してです。

ae-1sp
質問者

お礼

早速のご回答ありがとうございます。 分かりにくい書き方で申し訳有りません。 マクロの記録で行ったものを実行すると、仰るようにA-D列が非表示になってしまいます。 その為、B,C列のみを非表示にする方法を知りたかったのです。

関連するQ&A

  • エクセルシート:ボタン押下で特定列の表示←→非表示切り替え

    (行いたいこと) sheet1の中にコマンドボタン1があって、そのボタンが押されたとき既にC列からF列が非表示のときは表示してやり、また逆に表示のときは非表示にする。 (macroを作って実行したい) (現在の考えている状況) 後どうすればいいですか。今は何も動作しません。 今macro3というマクロの中に次のようなものが入っています。 Private Sub CommandButton1_Click() If Selection.EntireColumn.Hidden = True Then Columns("B:G").Select Range("G1").Activate Selection.EntireColumn.Hidden = False Else: Columns("C:F").Select Selection.EntireColumn.Hidden = True End Sub Sub Macro3() ' ' Macro3 Macro ' マクロ記録日 : 2006/3/24 ユーザー名 : ' Columns("C:F").Select Selection.EntireColumn.Hidden = True Columns("B:G").Select Range("G1").Activate Selection.EntireColumn.Hidden = False Range("B2").Select End Sub

  • 印刷したくない列を非表示にするマクロなのですが、

    印刷したくない列を非表示にするマクロなのですが、 印刷後、あらためて列を再表示する必要があり大変手間です。 印刷後も自動で再表示する方法をご教示いただきたく存じます。 Private Sub Workbook_BeforePrint(Cancel As Boolean) Columns("A:C").Select Selection.EntireColumn.Hidden = True End Sub

  • その列の結合セルを次のセルにコピーしたい場合

    A列目に結合セルがあってその結合セルをB列からE列までコピーするコードを書きたいと思って次のコードを記述しましたが動きません。 どこが間違っているのでしょうか?      sub()    Do While Columns(1).MergeArea = True Columns(1).Copy Columns(2) Columns(1).Copy Columns(3) Columns(1).Copy Columns(4) Columns(1).Copy Columns(5) Loop End sub

  • Excel表で、ヘッダーのタイトルが 例えばA1~D1のセルが結合され

    Excel表で、ヘッダーのタイトルが 例えばA1~D1のセルが結合されている場合で、C列を指定して非表示にしたいのですが、それを手動でやれば出来るのに、以下のマクロで実行するとどうしても A~D列が非表示になってしまいます。    Range("C:C").Select Selection.EntireColumn.Hidden = True 結合を解除せずに実行できる方法はないでしょうか。

  • セル結合と列挿入

    マクロの記録を使い書いて見ましたが、1行置きに3行挿入し 、A2:A5 , B2:B5 ,C2:C5 ,D2,D5 言う感じでセル結合を5000行まで行い、最後にD、E列、列の挿入したいのですが、どのように書けば宜しいでしょうか? すでに、データが入っています。 Sub Macro1() Rows("3:5").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Rows("7:9").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Range("A2:A5").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = True .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Selection.Merge Range("B2:B5").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = True .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Selection.Merge Range("C2:C5").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = True .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Selection.Merge Range("A6:A9").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = True .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Selection.Merge Range("B6:B9").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = True .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Selection.Merge Range("C6:C9").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = True .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Selection.Merge Columns("D:E").Select Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove Selection.ColumnWidth = 18.88 Range("A2:A5").Select End Sub

  • 13行目のセルの値が0のとき、その列を非表示にする

    Windows7 Excel2007でマクロ作成中の初心者です。 13行目のセルの値が、0のときは、その列を非表示にするというマクロを作ろうとしましたが なかなか難しくておてあげです。探したら次のようなコードがでてきました。 ボタンを押すとK列の値を参照して「A」と表示されている行を隠し、「表示する」ボタンを押すと、 解除するという処理。 Option Explicit Private Sub Cmd隠す_Click()  Dim 行番号 As Long  '行を隠す  For 行番号 = 4 To 13   If Cells(行番号, 11).Value = "A" Then    Cells(行番号, 1).EntireRow.Hidden = True   End If  Next 行番号 End Sub Private Sub Cmd表示する_Click()  '表全体を再表示する  Cells.Select  Selection.EntireRow.Hidden = False  Selection.EntireColumn.Hidden = False  Cells(1, 1).Select End Sub このコードを利用して、13行目のセルの値が、0のときは、その列を非表示にするというコードにしたいのです。 よろしくおねがいします。

  • 列の表示非表示をするマクロ

    C列とE列が非表示ならば再表示 表示されていれば非表示になるマクロを設定したいです。 このマクロを正しくするにはどうすればいいですか? Sub 再表示また非表示() If Columns("C:C,E:E").Hidden = True Then Columns("C:C,E:E").Hidden = False Else: Columns("C:C,E:E").Hidden = False Columns("C:C,E:E").Hidden = True End If End Sub

  • 非表示の列があるか取得したい。

    Sub Macro1() Columns("a").Hidden = True End Sub としたら、A列が非表示になりますよね。 そして、セル全体に非表示の列があるかどうかを取得したい場合はどうすればいいでしょう? Sub Macro2() If Cells.Hidden = True Then MsgBox "非表示の列があります" End If End Sub をすると、実行時エラー1004になります。 それに Cells.Hiddenの時点で、列だけじゃなくなってしまいます。 あと、最終列はファイルによってまちまちです。 Z列の時もあれば、EAの時もあります。 ご回答よろしくお願いします。

  • VBAマクロで結合セルを含む列に列挿入する方法?

    お世話になっています。 下記のエクセルVBAマクロで、 列挿入処理をしているのですが、 列に結合セル(行方向)がある場合にだけ、 列選択がうまくできず、 目的と異なる処理をしてしまいます。 ActiveCell.Offset(0, 1).Columns("A:A").EntireColumn.Select Selection.Insert Shift:=xlToRight 新しいマクロの記録で やってみたのですが、 上記マクロが生成されただけでした。 手作業では 列の上のアルファベットを選択して、 列挿入できるので、 何かいい方法があるのは? と思います。 どなたかよろしくお願いします。

  • エクセル2003 列の表示、非表示 マクロ

    エクセル2003です。 マクロについては初心者以下です。 ワークシートでダブルクリックしたときC列を表示、非表示にするマクロをインターネットで検索してちょっとやって見たのですが、C列だけでなくE、J、M列も表示非表示を同時に行いたい場合は どうすればよいでしょうか? 自動記録も使って見たのですが全部の列が非表示になってしまいだめでした。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) With Columns("C") .Hidden = Not .Hidden End With End Sub あと、ダブルクリックをセル以外の場所で行ったときに実行するようにできたりするのでしょうか? 今の状態だとデータのあるセルを間違えて変更したり、ダブルクリック後セルを移動しないと再び実行できないので・・ 他によい方法等ありましたら教えて頂きたいです。

専門家に質問してみよう