質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

4回答

9940閲覧

エクセルのマクロを用いた印刷の設定方法について

hatenaman018

総合スコア11

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2019/08/23 06:49

編集2019/08/23 07:37

マイクロソフトのエクセルマクロを作成しています。
現在行いたいことはマクロで印刷サイズを設定するところなのですが、A6(105148)もしくはハガキサイズ(100148)の設定の仕方がわかりません。
以下のようにコーディングを行ってもxlPaperA6の設定が存在しないためできません。
ユーザー設定による設定ができると思ったのですが、どなたかわかりませんか。
よろしくお願いします。

Sub 印刷 With worksheets("sheet1") .PageSetup.PaperSize = xlPaperA6 .PrintPreview End With End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ユーザー定義サイズの印刷をするには、先にプリンタのプロパティでユーザー定義のサイズが設定されていなければなりません。
これはExcelとは別の話ですので、ExcelVBAでの対応は不可能です。
(ActiveXで実現できなくはないですが・・・)

プリンタのプロパティは、コントロールパネルからでもExcelの印刷ページ設定からでも結果は同じです。Excelの印刷ページ設定からであれば、右下のオプションをクリックすると開きますが、ここから先は使用しているプリンタドライバの仕様によりますので、もし設定がわからなければ、マニュアルを見るかメーカーに問い合わせてください。
無事にサイズの設定を保存できたら、Excelを再起動してください。そのままでは選べない可能性があります。

ここまでお膳立てして、ようやくVBAで使用が可能となります。

VBA

1Worksheets("file1").PageSetup.PaperSize = 190

プリンタのプロパティで登録したユーザー定義の1つめであれば190番、2つめなら191番といった具合で指定してみてください。

但し、プリンタドライバによっては、190番からではない可能性もありますので、もしエラーが出てうまくいかなかった場合には、マクロの記録機能を使って、記録中にユーザー設定した用紙サイズを選択し、生成されたコードを見て正しい番号を確認してください。

投稿2019/08/23 08:15

Secret

総合スコア220

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatenaman018

2019/08/23 08:23

丁寧に教えていただきありがとうございます!とても助かります。 自分で調べてもこのような情報を見つけることができなかったのですが、どのサイトなどを参考にされているか伺ってもよろしいでしょうか?
Secret

2019/08/23 15:28

答えになるサイトは見つけられませんでしたが、ヒントとして、ここはどうでしょうか? https://stackoverflow.com/questions/27939513/choosing-paper-size-not-default-sizes-in-excel-vba 日本語だと情報が見当たらない場合、英語サイトを見た方が良いかもしれません。英語圏の人間の方が多いですので、ヒットする確率は上がります。それでもヒント止まりでしたが・・・。 それにしても、ExcelVBAで印刷ユーザー定義サイズを使用する需要というのは、思いのほか少なそうですね。もはや、ラベルシールくらいしか使わないかもしれません。
guest

0

ベストアンサー

定数定義されてないだけで、数値で設定できるようです。

A6=70
ハガキ=43

投稿2019/08/23 08:05

attercop

総合スコア246

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatenaman018

2019/08/23 08:10

そうなんですね!助かります。 その数値の一覧がどこにのっているか教えていただけないでしょうか? よろしくお願いします。
attercop

2019/08/23 08:27

一覧があった分けではなく、マクロの記録でページレイアウトからサイズを選択して、マクロのソースを見て確認しました。
hatenaman018

2019/08/23 08:29

なるほど、その手がありましたか。 勉強になります、ありがとうございます。
guest

0

VBA

1Sub Macro1() 2  With ActiveSheet.PageSetup 3    .LeftHeader = ""             '} 4    .CenterHeader = ""            '} 5    .RightHeader = ""             '}ヘッダー&フッター 6    .LeftFooter = ""             '} 7    .CenterFooter = ""            '} 8    .RightFooter = ""             '} 9    .LeftMargin = Application.InchesToPoints(0.787)    '} 10    .RightMargin = Application.InchesToPoints(0.787)    '} 11    .TopMargin = Application.InchesToPoints(0.984)     '}余白 12    .BottomMargin = Application.InchesToPoints(0.984)   '} 13    .HeaderMargin = Application.InchesToPoints(0.512)   '} 14    .FooterMargin = Application.InchesToPoints(0.512)   '} 15    .PrintHeadings = False              '←見出し 16    .PrintGridlines = False              '←枠線 17    .PrintComments = xlPrintNoComments        '←印刷タイトル 18    .PrintQuality = 300                '←印刷品質 19    .CenterHorizontally = False            '←余白の水平 20    .CenterVertically = False             '←余白の垂直 21    .Orientation = xlPortrait             '←回転角度 22    .Draft = False                  '←簡易印刷 23    .PaperSize = xlPaperA4              '←紙のサイズ指定 24    .FirstPageNumber = xlAutomatic          '←ページ番号 25    .Order = xlDownThenOver              '←降順、昇順 26    .BlackAndWhite = False              '←白黒印刷 27    .Zoom = 100                    '←倍率 28    .PrintErrors = xlPrintErrorsDisplayed      ' ←セルのエラー 29  End With 30  ActiveWindow.SelectedSheets.PrintPreview 31  ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True  '←印刷 32End Sub

これなら、ご自分の好きなサイズに設定することができるかとおもいますが・・・

投稿2019/08/23 07:57

nanami12

総合スコア1015

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatenaman018

2019/08/23 08:00

紙のサイズをA6もしくはハガキサイズに設定したいのですが、これではA4サイズで印刷されませんか?
nanami12

2019/08/23 08:02

紙の用紙指定を変更すればいいと読み取れませんか?
hatenaman018

2019/08/23 08:09

紙の用紙指定をどのようにしたら、A6もしくはハガキサイズが印刷できるのかという質問でした。 わかりにくくてすみません。
guest

0

コード一行記載されても、宣言などちゃんとできているか
わからないので、コードを全て記載することが望ましいです。

また印刷の用紙サイズを設定なら下記URLを参照し
テスト用のコードを書かれると良いかと思います

ここ

投稿2019/08/23 06:59

nanami12

総合スコア1015

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatenaman018

2019/08/23 07:35

ありがとうございます。コード修正しました。 回答していただいたサイトに列挙されている列挙型に私が印刷しようとしているサイズのものはありません。 ユーザー定義による印刷サイズの指定が行えると思うのですが、その設定についてはご存知ですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問