溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

VBA代碼Imposition是啥意思

發(fā)布時(shí)間:2021-10-15 09:24:04 來源:億速云 閱讀:142 作者:柒染 欄目:編程語言

本篇文章給大家分享的是有關(guān)VBA代碼Imposition是啥意思,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

ImpositionTool.bas


Attribute VB_Name = "ImpositionTool"

' 折手(Imposition)

' 在考慮版式和印后加工的前提下,將多個(gè)單獨(dú)的頁面安排到一個(gè)印張上(將文字、圖形和圖像安排到一個(gè)頁面內(nèi),稱為頁面排版)。

'打印全部

Sub printAll()

    Dim l_pages_count As Long, tmp_s As String

    l_pages_count = Selection.Information(wdNumberOfPagesInDocument)

    If l_pages_count Mod 4 > 0 Then Call setPageTo4Times

    tmp_s = getPageSequance(1, l_pages_count)

    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _

        wdPrintDocumentContent, Copies:=1, Pages:=tmp_s, _

        PageType:=wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, _

        Background:=False, PrintToFile:=False, PrintZoomColumn:=2, PrintZoomRow:=1 _

        , PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0

End Sub

'調(diào)整頁碼為4的倍數(shù)

'

Sub setPageTo4Times()

    Dim l_current_page As Long

    Dim l_current_page2 As Long

    Dim l_pages_count As Long

    Dim l_tmp As Long

    l_current_page = Selection.Information(wdActiveEndPageNumber)

    l_pages_count = Selection.Information(wdNumberOfPagesInDocument)

    l_tmp = l_pages_count Mod 4

    If l_tmp >= 0 Then

        Selection.EndKey Unit:=wdStory

        l_current_page2 = Selection.Information(wdActiveEndPageNumber)

        For i = 1 To 4 - l_tmp

            Selection.InsertBreak Type:=wdPageBreak

        Next

        ActiveDocument.ActiveWindow.PageScroll Up:=(l_current_page2 - l_current_page) '+ 4 - l_tmp

    End If

End Sub

' 返回折手頁碼順序

' 一頁紙正反2面各打印2頁,共4頁

' 0 表示此處需要打印空白頁

Function getPageSequance(i_from As Long, i_to As Long) As String

    Dim l_page_count As Long

    Dim l_paper_count As Long

    Dim l_p As Long, l_tmp As Long

    If i_to >= i_from And i_from > 0 Then

        getPageSequance = ""

        l_page_count = i_to - i_from + 1

        l_paper_count = CLng(l_page_count / 4)

        If l_paper_count * 4 < l_page_count Then

            l_paper_count = l_paper_count + 1

        End If

        getPageSequance = ""

        For l_p = 1 To l_paper_count

            l_tmp = 2 * l_p - 1

            If l_tmp <= l_page_count Then

                getPageSequance = getPageSequance & "," & CStr(l_tmp - 1 + i_from)

            Else

                getPageSequance = getPageSequance & ",0"

            End If

            l_tmp = 2 * (2 * l_paper_count + 1 - l_p)

            If l_tmp <= l_page_count Then

                getPageSequance = getPageSequance & "," & CStr(l_tmp - 1 + i_from)

            Else

                getPageSequance = getPageSequance & ",0"

            End If

            l_tmp = 2 * l_p

            If l_tmp <= l_page_count Then

                getPageSequance = getPageSequance & "," & CStr(l_tmp - 1 + i_from)

            Else

                getPageSequance = getPageSequance & ",0"

            End If

            l_tmp = 2 * (2 * l_paper_count - l_p) + 1

            If l_tmp <= l_page_count Then

                getPageSequance = getPageSequance & "," & CStr(l_tmp - 1 + i_from)

            Else

                getPageSequance = getPageSequance & ",0"

            End If

        Next

        If Left$(getPageSequance, 1) = "," Then

            getPageSequance = Mid$(getPageSequance, 2)

        End If

    Else

        getPageSequance = ""

    End If

End Function

以上就是VBA代碼Imposition是啥意思,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

vba
AI