VBA学习笔记(5)-几个有用的例子

显示当前page size:

Application.ActiveDocument.Name
Application.ActiveDocument.PaperSize
Application.ActiveDocument.PaperHeight("inches")

Application.ActiveDocument.PaperWidth("inches")
Sub UseApplication()
    ' Holds the description.
    Dim Description As String
    
    ' Get the document description.
    With Application.ActiveDocument
        Description = _
            "Name: " + .Name + vbCrLf + _
            "Description: " + .Description + vbCrLf + _
            "Paper Height: " + _
            CStr(.PaperHeight("inches")) + vbCrLf + _
            "Paper Width: " + _
            CStr(.PaperWidth("inches")) + vbCrLf + _
            "Paper Size: "
        
        ' The paper size requires special handling.
        Select Case .PaperSize
            Case VisPaperSizes.visPaperSizeA3
                Description = Description + "A3"
            Case VisPaperSizes.visPaperSizeA4
                Description = Description + "A4"
            Case VisPaperSizes.visPaperSizeA5
                Description = Description + "A5"
            Case VisPaperSizes.visPaperSizeB4
                Description = Description + "B4"
            Case VisPaperSizes.visPaperSizeB5
                Description = Description + "B5"
            Case VisPaperSizes.visPaperSizeC
                Description = Description + "C"
            Case VisPaperSizes.visPaperSizeD
                Description = Description + "D"
            Case VisPaperSizes.visPaperSizeE
                Description = Description + "E"
            Case VisPaperSizes.visPaperSizeFolio
                Description = Description + "Folio"
            Case VisPaperSizes.visPaperSizeLegal
                Description = Description + "Legal"
            Case VisPaperSizes.visPaperSizeLetter
                Description = Description + "Letter"
            Case VisPaperSizes.visPaperSizeNote
                Description = Description + "Note"
            Case VisPaperSizes.visPaperSizeUnknown
                Description = Description + "Unknown"
        End Select
    End With
    
    ' Get the active page description.
    With Application.ActivePage
        Description = Description + vbCrLf + _
            "Page Width: " + _
            CStr(.Shapes("thePage").Cells("PageWidth")) + _
            vbCrLf + "Page Height: " + _
            CStr(.Shapes("thePage").Cells("PageHeight"))
        
    End With
    
    ' Display the description on screen.
    MsgBox Description, _
        vbInformation Or vbOKOnly, _
        "Document and Page Description"
End Sub

 

显示当前所有pages.

ActiveDocument.Pages
Option Explicit

Sub ListPages()
    ' Holds the list of pages.
    Dim ThePages As Pages
    
    ' Holds the page information.
    Dim PageNames As String
    Dim ThisPage As Page
    
    ' Get the list of pages.
    Set ThePages = ActiveDocument.Pages
    
    ' Obtain the page information.
    For Each ThisPage In ThePages
    
        ' Check for a drawing page.
        PageNames = PageNames + ThisPage.Name + vbCrLf
    Next
    
    ' Display the results.
    MsgBox PageNames, vbInformation Or vbOKOnly, "Drawing Pages in Document"
End Sub

 

显示当前page所有shapes.

ActivePage.Shapes
Sub ListShapes()
    ' Holds the list of shapes for a page.
    Dim TheShapes As Shapes
    
    ' Obtain the list of shapes.
    Set TheShapes = ActivePage.Shapes
    
    ' Holds individual shape data.
    Dim ThisShape As Shape
    Dim ShapeNames As String
    
    ' Obtain each shape and add it to the list.
    For Each ThisShape In TheShapes
        ShapeNames = ShapeNames + ThisShape.Name + vbCrLf
    Next
    
    ' Display the results on screen.
    MsgBox ShapeNames, _
           vbInformation Or vbOKOnly, _
           "Shapes on Current Page"
End Sub

 

显示对应shapesheet的cells.

ActivePage.Shapes("xxx").RowCount
ActivePage.Shapes("xxx").CellsSRC
Sub ListCells()
    ' Holds the current shape.
    Dim TheShape As Shape
    
    ' Loop counter variables.
    Dim RowCount As Integer
    Dim CellCount As Integer
    
    ' Holds the current cell information.
    Dim TheCell As Cell
    Dim CellName As String
    
    ' Obtain a selected shape.
' shapename,refer before papers
Set TheShape = ActivePage.Shapes("xxx") ' Open the file that will contain the cell names. Open ThisDocument.Path + "\CellNames.txt" For Output As #1 ' Process each of the cell rows. For RowCount = 0 To TheShape.RowCount(visSectionProp) - 1 ' Process each cell in the row. For CellCount = 0 To TheShape.RowsCellCount(visSectionProp, RowCount) - 1 ' Obtain the specific cell. Set TheCell = TheShape.CellsSRC(visSectionProp, RowCount, CellCount) ' Save the name of the Cell. CellName = TheCell.Name + vbCrLf ' Output the data. Write #1, CellName Next Next ' Close the file. Close #1 End Sub

 

两个有用的链接:

REF:https://msdn.microsoft.com/en-us/library/aa201749

       https://msdn.microsoft.com/en-us/library/aa730963(v=office.12).aspx

posted @ 2015-01-25 13:30  双手合十  阅读(987)  评论(0编辑  收藏  举报