Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2655 / 13645 ツリー ←次へ | 前へ→

【66693】余白は変数にとりこめる? たくじ 10/9/26(日) 14:02 質問[未読]
【66694】Re:余白は変数にとりこめる? かみちゃん 10/9/26(日) 14:06 発言[未読]
【66699】Re:余白は変数にとりこめる? たくじ 10/9/27(月) 0:04 質問[未読]
【66700】Re:余白は変数にとりこめる? かみちゃん 10/9/27(月) 4:39 発言[未読]

【66693】余白は変数にとりこめる?
質問  たくじ  - 10/9/26(日) 14:02 -

引用なし
パスワード
   Sheet1のページ設定で設定した「余白」を
Sheet2〜最後のシートに適用したいと思うのですが、
Sheet1の余白(上下左右、ヘッダー、フッター)を
変数に取り込む方法が分かりませんでした。
マクロの記録では取れないみたいです。
もし、できるのでしたら方法を教えてもらえませんか。

【66694】Re:余白は変数にとりこめる?
発言  かみちゃん  - 10/9/26(日) 14:06 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>マクロの記録では取れないみたいです。

どのようなコードが記録できましたか?

【66699】Re:余白は変数にとりこめる?
質問  たくじ  - 10/9/27(月) 0:04 -

引用なし
パスワード
   >どのようなコードが記録できましたか?

こんなのがとれますが、InchesToPointsの後ろの値が欲しい値(たとえば、2.5)と違うので
取れていないと考えています。


Sub Macro1()
  With ActiveSheet.PageSetup
    .PrintTitleRows = ""
    .PrintTitleColumns = ""
  End With
  ActiveSheet.PageSetup.PrintArea = ""
  With ActiveSheet.PageSetup
    .LeftHeader = ""
    .CenterHeader = ""
    .RightHeader = ""
    .LeftFooter = ""
    .CenterFooter = ""
    .RightFooter = ""
    .LeftMargin = Application.InchesToPoints(0.78740157480315)
    .RightMargin = Application.InchesToPoints(0.78740157480315)
    .TopMargin = Application.InchesToPoints(0.984251968503937)
    .BottomMargin = Application.InchesToPoints(0.984251968503937)
    .HeaderMargin = Application.InchesToPoints(0.511811023622047)
    .FooterMargin = Application.InchesToPoints(0.511811023622047)
    .PrintHeadings = False
    .PrintGridlines = False
    .PrintComments = xlPrintNoComments
    .PrintQuality = -3
    .CenterHorizontally = False
    .CenterVertically = False
    .Orientation = xlPortrait
    .Draft = False
    .PaperSize = xlPaperA4
    .FirstPageNumber = xlAutomatic
    .Order = xlDownThenOver
    .BlackAndWhite = False
    .Zoom = 100
    .PrintErrors = xlPrintErrorsDisplayed
  End With
End Sub

【66700】Re:余白は変数にとりこめる?
発言  かみちゃん E-MAIL  - 10/9/27(月) 4:39 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>>どのようなコードが記録できましたか?
>
>こんなのがとれますが、InchesToPointsの後ろの値が欲しい値(たとえば、2.5)と違うので
>取れていないと考えています。

2.5 がどういう単位かわかりませんが、
マクロの記録では単位は、インチで記録されます。
そのため設定したい単位がセンチメートルであれば、
CentimetersToPointsメソッドを使います。
ちなみに、1inch=72pt=2.54cm(1pt=約0.35mm) です。

具体的には、以下のような感じにします。

 Dim dblLeftMargin As Double
 dblLeftMargin = 2.5 '左余白の値 単位cm

  .LeftMargin = Application.CentimetersToPoints(dblLeftMargin)


また、以下も参考になると思います。
http://moug.net/tech/exvba/0070012.htm

2655 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free