![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_13.png?5a7ff87)
■私の質問
前回質問した内容について、再質問です。
●印刷範囲指定については、追加記載〔〕あります。
前回の質問:https://oshiete.goo.ne.jp/qa/9445443.html
Excel VBAで、以下のようなことをしたいです。
前置き:
Excelのシートで、一覧があります。
この一覧は、事前にA4の紙四枚に印刷出来るように印刷範囲、改ページの設定をしてあります。
●印刷範囲指定
・a4縦に印刷
・一覧は、横長12列(1ページ) x 4ページ分が〔横方向に展開されていて〕、印刷範囲に指定
〔※通常は縦方向かもしれませんが、これは横方向に作成されています。〕
このシートを、別のブックに保存でコピーして、ブックが表示されると
この改ページが結構乱れていて、指定していたようなa4 x 4枚の紙に印刷出来ません。
それを、vbaコードである程度修正したましたが、それでも、
横に破線が一本表示されてしまい、そこで、改ページされてしまいます。
手動ならば、この破線をマウスで下にスクロールして、消す事は出来ますが、それをvbaで消したいのですが、どうすれば良いでしょうか。消すというのは削除するということです。
その破線が、どの行のbOTTOM部分に位置しているか判断する方法がわかりませんので、vbaでその破線をスクロールするのは難しそうですし、消す方法もわかりません。
よろしくお願いします。
■WindFallerさんのご回答に対する質問
WindFallerさんのご指摘大変参考になります。が、私の方で自分で作成したSelection_Changeのイベントのコードをコメント化した上で、シートを新規ブックにコピーしてテストをしてみました。
1) 印刷範囲が、説明済みのとおりおかしくなる。破線の横線が出る。
2) トップマージンを1.9から1.4に変更し、拡大率を100%にしてから、シートを新規ブックにコピーする
3) 印刷範囲がまたずれる。この時、ページ設定をみると、
変更前:上1.9, 下2, 左2.5, 右2.2で、拓大率が99%, A4
変更後:上1.4, 下2, 左2, 右1.7で、拡大率が100%, A4
新規ブックにコピーした時の設定
→変更後と同じ
手動で、縦と横の破線をドラッグしてなくすと、ページ設定は以下のとおりとなりました。
上1.4, 下2, 左2, 右1.7で、拡大率が 81%, A4
この変わり方が意味がわかりません。何故、拡大率が81%となるのか。
最初は、99%または、100%できちんとA4に入っていたのが、新規ブックにコピーすると、このように81%になってしまいます。
これは、もともと、オリジナルのファイルで、拡大率が99%で1ページに入っていたようにみえてますが、実は、1ページに収まらない範囲であるというのが正解なのでしょうか?
何故、このように新規ブックにコピーすると、拡大率が意味不明な変化の仕方をするのでしょうか。
この挙動について、もし、お分かりになれば、ご説明お願いします。
この質問は既に、解決済みですので、新規で質問を作成します。
よろしくお願いします。
![「ExcelVBA 改ページの横破線を消す」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/4/542241294_581e884680d3d/M.jpg)
No.5ベストアンサー
- 回答日時:
ちょっとコメントします。
また、もう一度書かせていただくことになるでしょうから、その時まで、個別に返事は不要です。(手前勝手すみません)
>エクセルの場合、印刷設定、印刷範囲をVBAでするということ自体がナンセンスだと言うことになりますね。
古い時代にMicrosoft は、どこかで分岐点があったようです。もともとは、IBMのスタッフを借りて表計算開発していたという歴史はありますが、そのIBMのスタッフは、そんな曖昧な方法は認めていなかったようです。アプリをグローバル化する時に、プリンター設定は、ユーザーにお任せしてしまったのです。
その後、VBAが搭載されたものの、Excelと一体になっているわけではなく、インターフェイスを通して搭載していますから、ハード側の制御がほとんど利きません。VBAで、Excel95 からの歴史で、少なくとも2007までは、実は、うまく制御できないバグらしきものがあったようです。何か、ここに本音と建前のようなものがあるような気がしてならないのです。
昨日、回答してから後も、Excel 2003と、Excel 2013 とのPixcel とPoint の違いを記録で比較してみると、数%の違いがあることが分かりました。
この解決方法は、本当は、プリンターのハード側の情報を取得ところから始まっているのだろうと思います。この私が、直接扱うような、そんな技術はないものの、あれから、10年以上も経って、そのままだということもないだろうという、「私の甘い期待」が、話をながのばせているということなのです。
No.4
- 回答日時:
こんばんは。
この件は、Excel2000時代ですが、ずいぶん私も研究したことがあります。そして、今、私自身分の考えだと思っていた話も、実はネットの情報からだということに再確認しました。
ちょっと話がずれていると思われる部分があるのは、お許しください。
[エクセル+固有のPCの設定+固有のプリンター]との組み合わせで、印刷の設定が決まるものだ、というのが定番の解答です。
https://support.microsoft.com/ja-jp/kb/400271
「 セルの幅・高さは、ピクセルという単位で表示されますが、これは「画素」という意味で、表示や印刷での小さな色の点のことです。センチメートルのような長さの単位ではありません。1ピクセルが何センチになるかはディスプレイやプリンタの設定によって変化します。」Microsoft
ただし、標準フォントとそうでないフォントが交じると、また狂い始めるという現象もあります。等幅フォントとプロポーショナルフォントでも違いが出てきます。(「標準フォントスタイルは、10~12までです。」:私の記録)
プリンター側から物理的印刷の限界という情報を、反映して割り振っていることは分かります。
シートコピーでもうまくいないのは、
>このようにはいかず、やはり、印刷範囲がずれてしまいます。
それは、その定番の[エクセル+固有のPCの設定+固有のプリンター]の組み合わせが変わったからでしょう?それぞれのPC+プリンターの組み合わせフォーマットを置いて置かないと無理かもしれません。
http://www.asahi-net.or.jp/~ef2o-inue/kihon/sub0 …
(以下は、昔の『エクセルでお仕事』の私の記録です)
ページ設定は必ず行なう
印刷プレビューで余白を調節
100%で表示・印刷できるのが原則
-最初から縮小して表示したり、ページ設定したりするのでは無意味
行数が固定しないシートは罫線を引かない
セルの書式は「標準」にままにしない
http://hp.vector.co.jp/authors/VA016119/sizemmqa …
セルの大きさについての Q&A (芳坂和行さんサイト)
歴史の話始めると長くなるので割愛しますが、かつてはピタッと納まる時代もあったのだから、不思議な話です。
私が、VB6をやっていた時にも、かなりの精度で印刷が納まるので、「定番の解答」には、どこかにウソがあるのではないかと思いました。そもそも、ラベル印刷アプリなどは、1mmの精度で印刷するのですから、ズレましたなんていうことは、ほとんどありません。それでも、試し印刷での調整は必須です。
どうやら、エクセルの場合は、セルの積み重ねで、按分していくような仕組みになっているので、どうしても、うまくいかないのです。(これも芳坂さんのサイトからでした。なお、罫線の太さも勘定に入れなくてはならないことでした。)
私が書いている話というのは、アプリがパスしても、最終的には物理的に印刷が収まらなければ解決しないのだろうということです。
仮に手動調整であるにしても、自動改ページが規定の場所に改ページが来ていないズレぐらいでしたら、メッセージを出すことは可能です。
出来ない理由をいくつ挙げてもしょうがないのですし、私もずいぶん研究し尽くしている話ですが、この件は、もう少し考えてみましょう。
このご説明が一番納得行く内容で、しっくりしました。ということは、やはり、エクセルの場合、印刷設定、印刷範囲をVBAでするということ自体がナンセンスだと言うことになりますね。
それをやって全て自動で出来るようにしてよ、というユーザの要望はあまりにも無理な話という事になります。このような要望については、対応方法というものを決めていかなくてはいけないと思いました。
大変ありがとうございます。
この質問はもう少しクローズシないでおきます。
No.3
- 回答日時:
WindFaller です。
>新規ブックにコピーすると、拡大率が意味不明な変化の仕方をするのでしょうか。
> 手動で、縦と横の破線をドラッグしてなくすと、ページ設定は以下のとおりとなりました。
> 上1.4, 下2, 左2, 右1.7で、拡大率が 81%, A4
どうみても、上マージン・左マージンの認識がされていないとししか思えません。
Excel自体で、ハード側の物理的マージンを認識して、その後で、Excel側で、それを処理するというわけですが、それは、一旦、印刷プレビューを通したものが条件のはずですから、印刷プレビューでご覧になっていないのではないかと思います。
もう一つ、新規ブックのコピーですが、シートタブを右クリツクして、
移動またははコピーを選び、新規ブックを選んでコピーするようにします。そうすれば、設定などは、そのまま移行するはずです。
私は、前もお話したとおり、私の経験で、ページの拡縮は、事務書類全体の管理として原則としていじらないことにしています。
Excelの印刷は、VBAの領域では届かないことがありますので、手動で処理するのが一般的です。
また、私が、それ(破線)を直す方法としては、実際は、印刷プレビューのところのラインをいじって入るようにさせています。印刷の拡縮には影響が出ません。
添付画像
![「ExcelVBA 改ページの横破線を消す」の回答画像3](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/f/1138040_581ea1290a83e/M.jpg)
なるほどですね。おっしゃることは良くわかりました。
印刷の設定というのは、手動でやるのが普通と。印刷をVBAでやろうとすると、うまくいかない時があります・・・ということですね。
確かに、挙動不審なところがエクセルにはありますので、なかなか微妙なところまで調整しろと言われても、難しい時があります。
>一旦、印刷プレビューを通したものが条件のはずですから、
>印刷プレビューでご覧になっていないのではないかと思います。
ここの部分ですが、ユーザは、印刷プレビューなど使っていません。
使い方も知りません。
しかし、この印刷範囲のずれは、お勧めの方法でコピーした時に、コピーした新規ブックが開くと、既に印刷範囲の設定がずれております。
それを、印刷プレビューを開き、上マージンを調整したりすると、縮小率が前出の通り小さくなってしまうのです。
恐らく、ご指摘の通り、エクセルが印刷範囲に指定した部分の範囲を適切に認識出来てないということなのでしょうか。(▼)
>どうみても、上マージン・左マージンの認識がされていないとししか思えません。
>もう一つ、新規ブックのコピーですが、シートタブを右クリツクして、
>移動またははコピーを選び、新規ブックを選んでコピーするように
>します。そうすれば、設定などは、そのまま移行するはずです。
ですので、上のお勧めの方法が、利用者が実際にコピーする時の操作方法になります。
>そうすれば、設定などは、そのまま移行するはずです。
このようにはいかず、やはり、印刷範囲がずれてしまいます。
エクセルはパソコンによっても動作が変わる場合があるので(当社の場合)、なかなかこの辺の解決は難しいです。
ですので、お話されたとおり、手動でなおすというのが解決策かと私も思いました。
アドバイス、ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 改ページ 2 2023/03/10 21:29
- Excel(エクセル) エクセル2013「次のページ数に合わせて印刷」が小さすぎる 9 2023/03/28 10:18
- Excel(エクセル) Excelであるシートだけ印刷できない 1 2022/04/01 09:04
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) 【Excel】エクセルの1シートが2枚に分割されてしまうので印刷プレビューを押して閉 4 2022/12/13 13:12
- Excel(エクセル) エクセルシートのPDFでの保存 2 2022/09/06 13:05
- Visual Basic(VBA) マクロについて教えてください。 3 2023/06/09 17:37
- Excel(エクセル) エクセルVBAで複数のシート印刷設定 1 2022/09/07 12:03
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで一覧表のデータを個別に...
-
エクセル2013で1ページ目と2ペ...
-
ワードからPDF作成したら文字色...
-
エクセルのページ番号印刷を3枚...
-
エクセルで長い行を1枚に印刷し...
-
ぴったり印刷するエクセルVBAを...
-
エクセル 表を大きく、紙いっ...
-
Word作成文書をA3用紙5枚の両面...
-
Excelで印刷!集計行をすべての...
-
Excelで連番(ナンバリング)印刷
-
エクセルで表を作って印刷プレ...
-
EXCELの改ページプレビューと印...
-
EXCEL印刷
-
EXCEL2003で袋とじ印刷ってでき...
-
拡大したまま印刷する方法
-
エクセルシートのPDFでの保存
-
MSワード_背景_透かし文字機能...
-
Wordでこのような三角が出てく...
-
ワードに「URL」を貼り付けると...
-
スケッチスタイルの有効化
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで一覧表のデータを個別に...
-
エクセルで長い行を1枚に印刷し...
-
エクセル 表を大きく、紙いっ...
-
Excelで連番(ナンバリング)印刷
-
エクセルのページ番号印刷を3枚...
-
ワードからPDF作成したら文字色...
-
エクセルで画面では罫線が出て...
-
Excelで印刷!集計行をすべての...
-
EXCEL印刷
-
WordでA3の大きさで左半分と...
-
エクセル2013で1ページ目と2ペ...
-
エクセルシートのPDFでの保存
-
ExcelVBA 改ページの横破線を消...
-
Word作成文書をA3用紙5枚の両面...
-
エクセル 長い表を1枚のPDFか...
-
EXCEL2003で袋とじ印刷ってでき...
-
セルに画面上色をつけて、印刷...
-
拡大したまま印刷する方法
-
ぴったり印刷するエクセルVBAを...
-
PDFファイルの2アップ印刷
おすすめ情報