2017-12-22 6 views
0

ドキュメントを印刷する前に、結合されたセルの境界線でページ区切りを設定して、Excelドキュメントを編集するマクロを作成しています。しかし、発生した問題は、一部の結合セルがページの最大サイズよりも高いことです。だから私は合併された細胞を2つ(またはそれ以上)の細胞に分けて、それらを適合させなければならない。さて、私は、スクリプトのユーザーがどのような書式設定をするのか、それでどのページ・タイプが使用されるのかを事前に知っていません。だから私は何とか現在のページタイプの高さを取得する必要がありますが、私はそれを行う方法を把握することはできません。VBA(Excel)印刷可能なページの高さを取得する

Private Sub Cellsize(i) 
    Dim H As Double 
    H = Worksheets("Summery table").PageSetup.PaperSize.Height 
    If Cells(i, 1).MergeArea.Height > H Then 
     Call FixLastingPageBreaks 
    End If 
End Sub 
+1

から底部またはグラブで数を見ることができます現在のところ、これはあなたが望むものとどのように違うのですか? – QHarr

答えて

0

は、以下のことを試してください:

Option Explicit 
Sub testing2() 

    Dim wb As Workbook 
    Set wb = ThisWorkbook 

    Dim ws As Worksheet 
    Set ws = wb.Worksheets("Sheet1") 

    Dim paperSize As Long 
    paperSize = ws.PageSetup.paperSize '9 

    Select Case paperSize 

    Case 9 

    MsgBox "Name: is xlPaperA4, Value: 9, Description: A4 (210 mm x 297 mm)" 

    'Case ....... 

    End Select 


    MsgBox ws.PageSetup.Orientation '1 

End Sub 

あなたは数が一定に戻ったかのサイズにリンクに変換するためのSelect Caseまたは類似の構造物を使用することができますここに私の最新の試みです。必要に応じて変数に値を割り当てたり、定義した定数をポイントしたりすることができます。

オブジェクトブラウザは、定数を示していますし、あなたがそれを持っているようなコードで何が起こっている

XlPaperSize Enumeration

XlPageOrientation Enumeration

Object model PaperSize Constants

+0

あなたの提案は、既存のすべてのXlPaperSize Enumerationの権利を大事にすることでしょうか? これはうまくいくと思いますが、行/セルの高さにExcelが使用する長さにセンチメートル(またはインチ)をどのように変換すればよいですか? お返事ありがとうございました! – Makknozz

+0

これは、次元の配列(たとえば)を返す関数として使用できる方法の1つです。 – QHarr

+0

1ポイントは約1/72インチまたは0.035cmです – QHarr

関連する問題