
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
教本に載っていることは、重要項目が多いが
実際にプログラムを組むときにそれだけで
動くかといえば、動くが「思っている動作と違う」事が
多い。よってコピペをしただけでは、プログラムとは言えんかもね。
今後のために言っておく
(1)同じシートに全く別の表及び形式の違う表を混在させない。
(2)どうしても複数の表が混在する場合は、Worksheetにその表を
コピーしてコピー先をプログラムで動作させる(元は何も変わらない)
(3)マクロで動作した内容を確認して、メソッド、プロパティの中身を
勉強する(かなり有効な勉強方法です)。
(4)実践形式の参考書を数冊所持する(上級テク満載です)。
参考図書『ExcelVBA実践技&上級技大全』C&R研究所
http://www.amazon.co.jp/Excel-VBA%E5%AE%9F%E8%B7 …
お礼が遅くなり大変申し訳ございませんでした。
参考になるご意見ありがとうございます。
身近にVBAについて相談できる人がいないので、自分なりに勉強していきたいと思います。
No.2
- 回答日時:
Sub bbb()
Dim StrSheet As String '元のシートの名前
Dim IntSheetCount As Integer 'シートを新規追加後の名前
Dim ICount As Integer 'コピーしたColumnsのカウント
Dim I As Integer '印刷方向を決める 2…横 1…縦
Dim BlShoki As Boolean '初期状態が大きすぎる表はエラーを表示する
If TypeName(Selection) = "Range" Then
If Selection.Count > 1 Then
StrSheet = ActiveSheet.Name
Selection.Copy
Worksheets.Add
Cells(1, 1).Select
IntSheetCount = Worksheets.Count
ActiveSheet.Paste
If Selection.Columns.Count >= Selection.Rows.Count Then
I = 2
Else
I = 1
End If
Application.Dialogs(xlDialogPageSetup).Show arg11:=I
For ICount = 1 To Selection.Columns.Count
Columns(ICount).AutoFit
Next ICount
With ActiveSheet
.PageSetup.Zoom = 10
.ResetAllPageBreaks
BlShoki = False
Do Until .HPageBreaks.Count >= 1 Or _
.VPageBreaks.Count >= 1 Or _
.PageSetup.Zoom > 400
.PageSetup.Zoom = .PageSetup.Zoom + 10
BlShoki = True
Loop
If BlShoki = False Then
MsgBox "範囲指定が大きすぎます。小さくして再度実行してください。", vbCritical
Application.DisplayAlerts = False
ActiveSheet.Dielete
Application.DsplayAlerts = False
Worksheets(StrSheet).Cells(1, 1).Select
Exit Sub
End If
MsgBox "印刷の倍率を" & .PageSetup.Zoom & "%に設定しました。", vbInformation
.PrintOut Preview:=True
End With
End If
End If
End Sub
忙しいかったからとりあえず、で
少しおかしいところあるかもしれません。
その辺は自己で修正を。
==================================================
選択範囲を新規Sheetに表示する。
ダイアログの表示後、縦か横を選択してみて。
初期値はColumnsとRowsを比較して自動設定している。
Columnsが大きければ縦表示。そうでなければ横表示。
印刷範囲が大きければ印刷エラーが出て回避。
==================================================
ひとつ言いたいが、ここのスレの住人は意外と親切だが
あなたのように、文書だけで、コードの一つもない場合は
意外と叩かれるから、次はコードも付けたほうが良いと。
まったく解からんくても、少しづつ埋める努力を期待します。
ありがとうございます。ネットで質問するのがはじめてなもので、不親切な質問になってしまいました。大変申し訳ございませんでした。
私はVBA初心者ですので、教則本にあるように、
Sub sss()
Range("A1:E8").Select
Selection.PrintPreview
End Sub
というふうに印刷範囲を設定いたしました。
しかし、都合により1つのシートに大小異なる複数の表を作成し、それぞれに上記のマクロを設定していることにより、それぞれの表の大きさがまちまちになります。その都度「設定」から縮尺を調整しておりますが、他の表も同じように調整されて困っていました。
ご回答いただいたコードは大変高度で理解するのに時間はかかりますが、少しずつ調べてみたいとおもいます。
ありがとうございました!
No.1
- 回答日時:
Sub ズームして印刷()
With ActiveSheet
.PageSetup.Zoom = 100 '倍率を100%に設定
.ResetAllPageBreaks '改ページ設定をクリア
'縦横の改ページが1以上かズームが400%以上になるまで
Do Until .HPageBreaks.Count >= 1 _
Or .VPageBreaks.Count >= 1 _
Or .PageSetup.Zoom >= 400
'10%加算
.PageSetup.Zoom = .PageSetup.Zoom + 10
Loop
MsgBox "倍率を " & .PageSetup.Zoom & "%"
.PrintPreview
End With
End Sub
簡単に解説します。
(1)HPageBreaks(水平)とVPageBreaks(垂直)は改ページの方向で
1以上になると2枚目の印刷になります。まぁ当たり前ですけど。
(2)PageSetup.Zoomは印刷倍率です。
Excel2003では400%までです。確か。
まとめると、倍率を10%ずつあげて行く。ただし、次ページを作らないように設定し((1)あたりを参考に)、かつ倍率が400%以下であれば
さらに10%倍率を足して行く。
DO Untilから抜けるには、改ページが発生するか、倍率400%を超えた場合はDOからぬける。
最後に設定した倍率をMsgBoxに表示する。まぁこんなんはどうでも良い。
最後に印刷プレビューを表示する。いきなり印刷は横暴かと。
いったん確認するくらいで良いのでは?
この回答への補足
早速のご回答誠にありがとうございました!
大変参考になります。
ご回答いただいた方法はシートを印刷する方法だと思いますが、質問本文にも記載いたしました、各表ごとに(Range等で)指定範囲する場合はどのようにすればよいでしょうか?
一つのシートに複数の大きさの異なる表があり、それぞれの表をそれぞれに紙いっぱいに印刷する方法はございますでしょうか?
説明が下手で誠に申し訳ございませんが、ご教授いただくようよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
- Excel(エクセル) Excelであるシートだけ印刷できない 1 2022/04/01 09:04
- Excel(エクセル) エクセルシートのPDFでの保存 2 2022/09/06 13:05
- プリンタ・スキャナー RICOHオンデマンドで、手差しで中綴じ印刷をしたいです。 (A4の内容を用紙サイズA3で印刷したい 1 2022/10/14 14:29
- Excel(エクセル) エクセルVBAで複数のシート印刷設定 1 2022/09/07 12:03
- Excel(エクセル) エクセル2013「次のページ数に合わせて印刷」が小さすぎる 9 2023/03/28 10:18
- Visual Basic(VBA) エクセル365のVBAで困っています。どう修正したらよいか添削をお願いします 2 2023/05/03 17:35
- Excel(エクセル) 【Excel】複数シートがあるエクセルデータで片面印刷と両面印刷設定がシートごとに入 1 2023/03/10 15:25
- Word(ワード) Wordでの印刷サイズについて A4の原稿をB5サイズで出力したいとき、 印刷から用紙サイズの指定か 4 2022/04/30 09:51
- その他(Microsoft Office) Excelのマクロについて教えてください。 1 2022/03/25 10:03
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【pdfファイル】縁なし印刷でき...
-
A4の用紙に写真をたくさん並べ...
-
エクセルで、分かれた行を印刷...
-
エクセルのサイズ変更について
-
画像を、思い通りのサイズで印...
-
ワードで紙いっぱいに印刷する...
-
ExcelでA4の表をA3・4枚のサイ...
-
プリンターで複数ページを小冊...
-
印刷部数が毎回10部になって...
-
Excelで作った表を印刷時のみ、...
-
エクセル 改ページプレビュー...
-
エクセル2007の質問
-
エクセルで印刷したときに右上...
-
エクセルで作成したバーコード...
-
ワードのコマンドボタンを印刷...
-
エクセル2002でページ設定で角...
-
PDF印刷 ページ全体が印刷でき...
-
word コメント等の吹き出しが...
-
A4サイズ1枚へまとめるには...
-
プリントされたハガキの上に文...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【pdfファイル】縁なし印刷でき...
-
A4の用紙に写真をたくさん並べ...
-
エクセルのサイズ変更について
-
エクセルで、分かれた行を印刷...
-
画像を、思い通りのサイズで印...
-
ExcelでA4の表をA3・4枚のサイ...
-
A4用紙に、はがきの大きさで4...
-
ExcelシートをA4用紙に4分割に...
-
いつも「現在のページ」で印刷...
-
スキャナーで取り込んで印刷し...
-
Googleマップを印刷しようとす...
-
エクセルで印刷したときに右上...
-
A4サイズ1枚へまとめるには...
-
プリンターで複数ページを小冊...
-
印刷部数が毎回10部になって...
-
ACCESSのレポートにWORDで作っ...
-
ワードで紙いっぱいに印刷する...
-
エクセル2002でページ設定で角...
-
word背景が縮小されてしまいます!
-
ワードのコマンドボタンを印刷...
おすすめ情報