• ベストアンサー

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

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

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

  • ベストアンサー
  • nametom
  • ベストアンサー率39% (17/43)
回答No.1

マクロで印刷してその後再表示させたらどうですか? Columns("A:C").EntireColumn.Hidden = True Worksheets(1).PrintOut Columns("A:C").EntireColumn.Hidden = False

a26vNvvub
質問者

お礼

ありがとうございます。 思ったことができました。 感謝。

関連する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

  • マクロを使って印刷範囲を指定したのに

    エクセルでボタンをクリックすると印刷範囲を指定し印刷プレビューまで行えるようにマクロを登録しました。 (A~C列+J~U列)を印刷したいので、D~I列を非表示にし、その後A~Uを選択→印刷→選択した部分にチェック→印刷プレビュー→印刷の方法でマクロ登録しました。登録作業中は正しく印刷できましたが、実際にボタンをクリックするとプレビューには(A~C列+M~U列)しか表示されません。 何度やり直してもダメで、D:Oを非表示にしてA:AAを選択後に印刷プレビューする場合は(A~C列+P~AA列)が正しく印刷できました。非表示にする列が違う場合はできたのに、どこがいけないのでしょうか? 以下のような感じになっています。 Columns("D:I").Select Selection.EntireColumn.Hidden = True Range("A4:U43").Select Selection.PrintOut Copies:=1, Preview:=True, Collate:=True ActiveWindow.LargeScroll Down:=-1 Columns("C:J").Select Selection.EntireColumn.Hidden = False End Sub 説明がうまくできないのですが、宜しくお願いします。

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

    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

  • 【Excel】 マクロが止まってしまいます。

    こんにちは。 マクロを記録し、その内容をA1セルをダブルクリックで実行するようにしたいと思います。 記録したマクロを、[ツール]から実行すると、正常に再生されましたが、以下のようにダブルクリックで実行するようにすると、 「Columns("C:N").Select」のところで止まってしまいます。 どのように書くと良いのか教えてください。 -------------------------------------------------------- Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Address <> "$A$1" Then Exit Sub Cancel = True Columns("A:U").Select Selection.Copy Sheets("一覧").Select Range("A1").Select Sheets("一覧").Select Sheets.Add ActiveSheet.Paste Columns("C:N").Select Application.CutCopyMode = False Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.EntireColumn.Hidden = True Range("O4").Select End Sub --------------------------------------------------------

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

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

  • エクセルで縦方向のオートフィルタはできないので、

    E4~Z4セルに、その列を表示させる場合は1を、させない場合は0が立つようにして If Range("E4").Value = 0 Then Columns("E:E").Select Selection.EntireColumn.Hidden = True End If If Range("F4").Value = 0 Then Columns("F:F").Select Selection.EntireColumn.Hidden = True End If とZまで繰り返したマクロにしてみたらできましたが、 例えばDD列まであるような横長の表の場合、とても長いマクロになってしまいます。 もっとすっきりとしたものにできるでしょうか。 エクセル2003使用のマクロ初心者です。 よろしくお願いします。

  • エクセル VBA 表示範囲の簡素化

    よろしくお願いします。 下記構文の簡素化ができないでしょうか。 CommandButtonが30個ほどあります。 ーーーーーーーーーー Private Sub CommandButton1_Click() Dim rng As Range Application.Goto Sheets("基本台紙").Range("A1") Set rng = Range("A1:D7") Rows.Hidden = True rng.EntireRow.Hidden = False Columns.Hidden = True rng.EntireColumn.Hidden = False rng(1).Select Unload Me UserForm1.Show vbModeless End Sub ーーーーーーーーーー Private Sub CommandButton2_Click() Dim rng As Range Application.Goto Sheets("基本台紙").Range("A1") Set rng = Range("A8:B21") Rows.Hidden = True rng.EntireRow.Hidden = False Columns.Hidden = True rng.EntireColumn.Hidden = False rng(1).Select Unload Me UserForm1.Show vbModeless End Sub ーーーーーーーーーー Private Sub CommandButton3_Click() Dim rng As Range Application.Goto Sheets("基本台紙").Range("A1") Set rng = Range("C8:D21") Rows.Hidden = True rng.EntireRow.Hidden = False Columns.Hidden = True rng.EntireColumn.Hidden = False rng(1).Select Unload Me UserForm1.Show vbModeless End Sub

  • エクセルVBA・空白セルのある列を非表示にするには?

    エクセルのVBAについてです! 表で上から2行目(G2:CX2)に空欄があった場合、その列を非表示にする、 というマクロを組みたくて、以下のように書いてみました。 一応、ちゃんと動くのですが、止まる(結果が出る)までにやたらと時間がかかり、これでは使えません。。 本を見ながら何となく書いたので、自身では詳しくわかりません。 どこ(何)がおかしくて、どう書き換えたらよいか、お分かりになる方、ぜひ教えてください! よろしくお願い致します。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ Sub 空欄のある列を非表示にする() Dim cl As Range Range("G2:CX2").SpecialCells(xlCellTypeBlanks).Select For Each cl In Selection r = cl.Column 'MsgBox r Columns(r).EntireColumn.Hidden = True Next End Sub ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

  • エクセルのsheet1つだけの印刷制御について

    win xp office2003を使用しています。 全てのsheetの印刷制御は、下記の方法でできるのはわかっているのですが..... ************************************************* Private Sub Workbook_BeforePrint(Cancel As Boolean) MsgBox "このExcelシートは、印刷できません", vbExclamation Cancel = True End Sub ************************************************* 1つのシートだけを印刷できないようにするにはどうしたら良いでしょうか?

専門家に質問してみよう