• ベストアンサー

Exel2000VBA非表示の行が印刷されてしまう

EXEL2000でVBAマクロ作成しています。 シートのある行を非表示にしました。そのまま印刷 プレビューを見ると確かに非表示になっています。 ところがマクロの実行をして印刷プレビューをみると 非表示の行が表示されています。 これを表示しないように印刷するにはどうすればよろしいか。

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

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

#2です。 単純なことだったようです。 エクセルのシートである列を非表示にして、その前後列をシート上で (非表示列をまたがって)指定し(行でも同じ)、他のセル範囲に貼り付けると、非表示のセルも表示されるということがあるようです。 それと関連してませんか。 別件ですが補足掲載VBAのコードのことですが (1)マクロの記録から勉強したのでしょうが、SELECT、SELECTIONを 減らす (2)繰り返しSheetのAから、J間での類似コードでの処理を、1つを繰り返しで実現できないか。 を、将来VBAを続けるなら工夫されてはどうでしょう。 (3)またシート構成につき、10種類も元データのシートが分かれているのは、解せません。初めからのシート構成をなれた人ならこうしないのではと(内容はわからずながら)推測します。

aitaine
質問者

お礼

そうか、そうゆうことだったのか。ほんとありがとうございました。ひとつ勉強になりました。

その他の回答 (2)

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

私も#1のご回答のように、まず、VBAの中で、表示に戻してないかチェックが必要と思います。 VBEの画面にソースコードを出し,「Hidden=False」が入ってないか見てみてください。VBEの画面の編集ー検索ーHidden=False でどうでしょう。 PageSetUpに非表示行を印刷する設定はなかったと思います。

aitaine
質問者

補足

シートのセルには文字の入った行を手動で非表示にしています。BVAのコードは以下のとおりでHiddenとか何も入っていません。 Sub 請求書一括印刷() Application.ScreenUpdating = False Sheets("A").Select Range("B2:AB32").Select Selection.Copy Sheets("請求印刷 (2)").Select Range("B1").Select ActiveSheet.Paste Sheets("A").Select Application.CutCopyMode = False Range("B2").Select Sheets("B").Select Range("B2:AB32").Select Selection.Copy Sheets("請求印刷 (2)").Select Range("B34").Select ActiveSheet.Paste Sheets("B").Select Application.CutCopyMode = False Range("B2").Select Sheets("C").Select Range("B2:AB32").Select Selection.Copy Sheets("請求印刷 (2)").Select Range("AD1").Select ActiveSheet.Paste Sheets("C").Select Application.CutCopyMode = False Range("B2").Select Sheets("D").Select Range("B2:AB32").Select Selection.Copy Sheets("請求印刷 (2)").Select Range("AD34").Select ActiveSheet.Paste Sheets("D").Select Application.CutCopyMode = False Range("B2").Select Sheets("E").Select Range("B2:AB32").Select Selection.Copy Sheets("請求印刷 (2)").Select Range("BF1").Select ActiveSheet.Paste Sheets("E").Select Application.CutCopyMode = False Range("B2").Select Sheets("F").Select Range("B2:AB32").Select Selection.Copy Sheets("請求印刷 (2)").Select Range("BF34").Select ActiveSheet.Paste Sheets("F").Select Application.CutCopyMode = False Range("B2").Select Sheets("G").Select Range("B2:AB32").Select Selection.Copy Sheets("請求印刷 (2)").Select Range("CH1").Select ActiveSheet.Paste Sheets("G").Select Application.CutCopyMode = False Range("B2").Select Sheets("H").Select Range("B2:AB32").Select Selection.Copy Sheets("請求印刷 (2)").Select Range("CH34").Select ActiveSheet.Paste Sheets("H").Select Application.CutCopyMode = False Range("B2").Select Sheets("I").Select Range("B2:AB32").Select Selection.Copy Sheets("請求印刷 (2)").Select Range("DJ1").Select ActiveSheet.Paste Sheets("I").Select Application.CutCopyMode = False Range("B2").Select Sheets("J").Select Range("B2:AB32").Select Selection.Copy Sheets("請求印刷 (2)").Select Range("DJ34").Select ActiveSheet.Paste Sheets("J").Select Application.CutCopyMode = False Range("B2").Select Sheets("請求印刷 (2)").Select ActiveSheet.PrintPreview Sheets("hyousi").Select End Sub

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

> ところがマクロの実行をして印刷プレビューをみると > 非表示の行が表示されています。 このマクロは何のマクロですか? その中に非表示行を表示させる記述があるのではないですか?

関連するQ&A

  • EXCEL2007 VBA 印刷タイトルには、連続した行全体または列全

    EXCEL2007 VBA 印刷タイトルには、連続した行全体または列全体を指定してください。 OS:windowsXP SP3 開発したエクセル:EXCEL2003 実行したエクセル:EXCEL2007 ファイルは2003形式で保存しています。 VBA付のEXCELマクロを起動すると、データを加工して、新しいブックにはきだします。 VBAのコードの中で、シートの印刷タイトルを設定しています。 Set s2 = Workbooks("ブック名").Sheets(”シート名”) ・ ・ ・ s2.PageSetup.PrintTitleRows = s2.Rows(1).Address & ":" & s2.Rows(4).Address こんな感じです。 excel2003では、何の問題もないのですが、excel2007で実行すると、エラーにはならないものの、作成したEXCELをプレビューすると、 印刷タイトルには、連続した行全体または列全体を指定してください。 というエラーが出て、プレビューできません。 作成したファイルの印刷設定は空欄になっていました。 With s2.PageSetup .PrintTitleRows = "$1:4$" .PrintTitleColumns = "" End With このソースもダメでした。 VBAのコードがNGならと、編集するシートにあらかじめ印刷設定を行ってみましたが、新しいブックにコピーした時点?でダメなようです。 どなたか、この問題を解決してください! 宜しくお願いします。

  • Excel VBA の印刷後の判定

    いつもお世話になっています。 Excel VBA で不明な点が出てきたので質問させていただきます。 処理順として 1.AccessからExcelを出力し、出力後はそのまま表示しておく。 2.表示してあるExcelをユーザーが印刷する。 3.印刷したシートの見出しの色を変更する。 の3つなのですが、3の処理をExcelマクロで実行する際に、 印刷が実行されたかどうかの判別方法がわからないのです。 印刷直前でも構わないと思い、BeforePrint イベントを調べて使用してみたのですが、 印刷プレビューでもイベントが走ってしまい、ダメでした。 印刷実行なのか、プレビューなのか区別が出来る方法があればとも思っているのですが…。 ご存知の方、ご教授お願いいたします。

  • Exelの印刷時の質問

    Exelのシートを印刷する時に毎ページ先頭にくる行を同じ行にしたいんですが (例えば1ページ目が「1~10」の行を印刷したとして、2ページ目は11~20ですが、そこを先頭に1の行を入れて「1、11~」の行として表示印刷したい場合です。) 説明が下手で申し訳ないですが、 やり方を教えてください。

  • Excel2007のVBAでPreviewすると

    初めまして。 Excel2007のVBAで困っていることがあり解決方法を探しています。 もともとExcel97で稼働していたマクロ+VBA付きのシートをExcel2007で稼働させようとしています。 マクロ・VBAで作成されたシート(sheet2)をフォームに配置した印刷ボタンをユーザーに押してもらうことでプレビューを表示します。 印刷ボタンを押したときのプレビューのコード Worksheets("sheet2").PrintOut Copies:=1, Preview:=True でプレビュー画面を表示したところ、印刷ボタンや印刷設定ボタン等の上部にあるボタンが薄いグレーの配色で押せなくなりました。 調べた結果、ScreenUpdatingがfalseだと同じ状態になるとわかったので Application.ScreenUpdating = True Worksheets("sheet2").PrintOut Copies:=1, Preview:=True と書き換えましたが、不具合は解消されませんでした。 またブックを閉じずに、マクロを再起動させて同様の動作をおこなうと 何故かちゃんとボタンが押せるプレビューが表示します。 その状態のブックを保存して改めて開くと同じようにプレビューのボタンが押せなくなっています。 同じような現象で解決された方いらしたら解決方法を教えて頂ければありがたいです。 よろしくお願いいたします。

  • ExcelVBAで行の非表示、表示をコード化

    現在、Excel2003をつかっており、VBAを用いて sheet1シートの2行目、4行目、10行目を非表示にするマクロ(HIDDEN)と すべての行を表示にするマクロ(APPEAR)を使っています。 Sub HIDDEN() ThisWorkbook.Worksheets("sheet1").Rows("2").HIDDEN = True ThisWorkbook.Worksheets("sheet1").Rows("4").HIDDEN = True ThisWorkbook.Worksheets("sheet1").Rows("10").HIDDEN = True End Sub Sub APPEAR() ThisWorkbook.Worksheets("sheet1").Rows.HIDDEN = False End Sub いま、2つのマクロを併合し 「Sheet1の2行目、4行目、10行目のいずれかが非表示であれば、すべての行を表示 そうでなければ、2行目、4行目、10行目のすべてを非表示にしたい」 と考えています。 ここで私が困っているのは、2行目、4行目、10行目のいずれかが非表示であれば というのをどうVBAで記述するのかです。

  • ExcelVBAで行の非表示、表示をコード化したい

    現在、Excel2003をつかっており、VBAを用いて sheet1シートの2行目、4行目、10行目を非表示にするマクロ(HIDDEN)と すべての行を表示にするマクロ(APPEAR)を使っています。 Sub HIDDEN() ThisWorkbook.Worksheets("sheet1").Rows("2").HIDDEN = True ThisWorkbook.Worksheets("sheet1").Rows("4").HIDDEN = True ThisWorkbook.Worksheets("sheet1").Rows("10").HIDDEN = True End Sub Sub APPEAR() ThisWorkbook.Worksheets("sheet1").Rows.HIDDEN = False End Sub いま、2つのマクロを併合し 「Sheet1の2行目、4行目、10行目のいずれかが非表示であれば、すべての行を表示 そうでなければ、2行目、4行目、10行目のすべてを非表示にしたい」 と考えています。 ここで私が困っているのは、2行目、4行目、10行目のいずれかが非表示であれば というのをどうVBAで記述するのかです。

  • Excel VBA 「印刷中」メッセージを非表示にしたい

    Excel・VBAで顧客ごとに手紙を印刷するために、 下記のような処理を記述しました。 <使用しているシート>  sheet1 顧客リスト(100行ほど)  sheet2 顧客に送付する手紙のフォーム <処理概要>  1.sheet1を上からループさせながら1行ごとデータを   読み込む。  2.1のデータをsheet2に書き出す。  3.sheet2(フォーム)の印刷をおこなう。  ※2、3は1のループの中で1件ずつおこなう。 3の処理で 「sheet2.printout」 という命令をかけているのですが、印刷の実行がかかるたびに「印刷中:n/nページを印刷中です」というメッセージが出てくるので、これを非表示にしたいのですが、何かいい方法はありませんか? よろしくお願いします。

  • Excel Vba でデータの範囲を知るには?

    Excelを使用していますが、マクロ(VBA)で、シートのデータの範囲を知るにはどうすればよいのでしょうか。  印刷プレビューを行うと、自動的にページ数が求めらていますが、これは、シートのデータの範囲(列及び行の最大値)を判別しているからできるのだと思います。  これを、VBAで行、及び列のMAX値を取得したいのですが、そのメソッド(プロパティ)を知りたいのです。  どなたかご教授ください。

  • 塗りつぶしのない行を非表示にするマクロ

    塗りつぶしのない行を非表示にするマクロを作成したいのですが、 どこが問題で実行できないのかわかりません! 例えば8行目に対して実行したい場合を教えてください! ちなみに自分で作成したVBAはこんな感じです。 Sub macro1() If Rows("8:8").Interior.Color = xlNone Then Rows("8:8").EntireRow.Hidden = True End If End Sub よろしくお願いします。 ちなみにexcel2007です。

  • Exelの見出し付きの表の下線が印刷されません

    Exelの見出し付きの文章を印刷するとき、見出し部分の下線が印刷されません。 それも特定のページのみ、印刷されないのです。 全部で5ページある書類なのですが、2ページ目と5ページ目だけ下線が表示されません。他のページではちゃんと印刷されます。 印刷プレビューで見ても、2ページ目と5ページ目だけ、下線が表示されていません。 見出し部分は、線で四方が囲まれていて、中に書類のタイトルが書いてあります。その下数行には何も書いていなく、空白で、その下(3行目ぐらい)から文章が始まっています。2ページ目と5ページ目だけ、見出しの四角の下線が消えています。 思い当たる理由としては、2ページ目と5ページ目の上部の空白部分の行を一回削除して、また元に戻した(行を増やした)ことがあると思うのですが、これが理由でしょうか。 私はExelにはあまり詳しくなく、対処法が分からすに困っています。 下線だ印刷されるようにするにはどうしたらいいのでしょうか。分かる方、教えてください。

専門家に質問してみよう