マイクロソフトオフィスにはウィンドウズ版とマック版があります。
同じメーカーの同じソフトだから、印刷しても同じものが出てくると期待しているととんでもない結果になることがあります。これはウィンドウズとマックの画面解像度の違いに起因するそうです。ウィンドウズとマックだと標準的に使うフォントが違うので、違うフォントで同じフォントサイズを選んでもおかしなことになります。
そのため、ワードではウィンドウズ版とマック版で同じフォントを使う(マックでもMS明朝やMSゴシックを使う)ことでだいぶ防げるようです。
ところが、エクセルでは枠線の解像度の違いなのか、ウィンドウズ版では印刷して一枚で収まるように作ったファイルがマック版で印刷すると2枚以上に切れてしまうことがあります。
これはフォントを統一しても直りません。
マックに合わせるとウィンドウズでおかしくなります(小さくなる)。
両方で問題なく同じように印刷するために既存のファイルを微調整するのは時間と労力の無駄なので、エクセルの拡大/縮小印刷機能で「横1×縦1ページに印刷」を開いているファイルの全シートに適用して印刷準備をするエクセルマクロを作りました。
マックでの実行を意図して作りましたが、ウィンドウズでも使えます。
ウィンドウズで作成したエクセルファイルを印刷しようとしたら1枚に収まらないとき、このマクロを実行すると
1.全シートに「横1×縦1ページに印刷」を適用
2.1枚目のシートに戻り、印刷ダイアログを表示
します。
「横1×縦1ページに印刷」機能は横か縦の長辺を1枚に収まるように全体を縮小するだけの機能なので、元の表の縦横のバランスが紙の縦横のバランスと極端に違う場合、おかしなバランスとなることがあります。あくまでも一時しのぎのものです。
他にこの問題を少しはましにする方法として、マック印刷するときにはOpenOfficeを使う方法もあります。
試した限りでは、OpenOfficeの方がマイクロソフトオフィスよりもずれが少なく印刷されました。
以下、マクロです。
‘Dim mySheet As Worksheet
For Each mySheet In Worksheets
mySheet.Select
With ActiveSheet.PageSetup
.PrintTitleRows = “”
.PrintTitleColumns = “”
End With
ActiveSheet.PageSetup.PrintArea = “”
With ActiveSheet.PageSetup
.LeftHeader = “”
.CenterHeader = “”
.RightHeader = “”
.LeftFooter = “”
.CenterFooter = “”
.RightFooter = “”
.LeftMargin = Application.InchesToPoints(0.78)
.RightMargin = Application.InchesToPoints(0.787)
.TopMargin = Application.InchesToPoints(0.984)
.BottomMargin = Application.InchesToPoints(0.984)
.HeaderMargin = Application.InchesToPoints(0.512)
.FooterMargin = Application.InchesToPoints(0.512)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.PrintErrors = xlPrintErrorsDisplayed
End With
Next mySheet
Application.Dialogs(xlDialogPrint).Show
End Sub
Popularity: 32% [?]
こちらの記事もどうぞ(関連記事紹介):
