|  | @@ -1,13 +1,21 @@
 | 
	
		
			
				|  |  | -Attribute VB_Name = "剪贴板尺寸建立矩形"
 | 
	
		
			
				|  |  | -Public O_O As Double
 | 
	
		
			
				|  |  | +'// Attribute VB_Name = "剪贴板尺寸建立矩形"
 | 
	
		
			
				|  |  | +Type Coordinate
 | 
	
		
			
				|  |  | +    x As Double
 | 
	
		
			
				|  |  | +    y As Double
 | 
	
		
			
				|  |  | +End Type
 | 
	
		
			
				|  |  | +Public O_O As Coordinate
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  Sub start()
 | 
	
		
			
				|  |  | +    '// 坐标原点
 | 
	
		
			
				|  |  | +    O_O.x = 0:   O_O.y = 0
 | 
	
		
			
				|  |  | +    Dim ost As ShapeRange
 | 
	
		
			
				|  |  | +    Set ost = ActiveSelectionRange
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    O_O.x = ost.LeftX
 | 
	
		
			
				|  |  | +    O_O.y = ost.BottomY - 50    '选择物件 下移动 50mm
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      '// 建立矩形 Width  x Height 单位 mm
 | 
	
		
			
				|  |  |      ' Rectangle 101, 151
 | 
	
		
			
				|  |  | -    
 | 
	
		
			
				|  |  | -    ' setRectangle 200, 200
 | 
	
		
			
				|  |  | -    
 | 
	
		
			
				|  |  | -    O_O = 0
 | 
	
		
			
				|  |  |      Dim Str, arr, n
 | 
	
		
			
				|  |  |      Str = GetClipBoardString
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -21,7 +29,6 @@ Sub start()
 | 
	
		
			
				|  |  |      Do While InStr(Str, "  ") '多个空格换成一个空格
 | 
	
		
			
				|  |  |          Str = VBA.Replace(Str, "  ", " ")
 | 
	
		
			
				|  |  |      Loop
 | 
	
		
			
				|  |  | -    
 | 
	
		
			
				|  |  |      arr = Split(Str)
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  |      Dim x As Double
 | 
	
	
		
			
				|  | @@ -33,22 +40,19 @@ Sub start()
 | 
	
		
			
				|  |  |          
 | 
	
		
			
				|  |  |          If x > 0 And y > 0 Then
 | 
	
		
			
				|  |  |              Rectangle x, y
 | 
	
		
			
				|  |  | -            O_O = O_O + x + 30
 | 
	
		
			
				|  |  | +            O_O.x = O_O.x + x + 30
 | 
	
		
			
				|  |  |          End If
 | 
	
		
			
				|  |  | -        
 | 
	
		
			
				|  |  |      Next
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  End Sub
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  Private Function Rectangle(Width As Double, Height As Double)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      ActiveDocument.Unit = cdrMillimeter
 | 
	
		
			
				|  |  |      Dim size As Shape
 | 
	
		
			
				|  |  |      Dim d As Document
 | 
	
		
			
				|  |  |      Dim s1 As Shape
 | 
	
		
			
				|  |  | -    
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      '// 建立矩形 Width  x Height 单位 mm
 | 
	
		
			
				|  |  | -    Set s1 = ActiveLayer.CreateRectangle(O_O, 0, O_O + Width, Height)
 | 
	
		
			
				|  |  | +    Set s1 = ActiveLayer.CreateRectangle(O_O.x, O_O.y, O_O.x + Width, O_O.y - Height)
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  |      '// 填充颜色无,轮廓颜色 K100,线条粗细0.3mm
 | 
	
		
			
				|  |  |      s1.Fill.ApplyNoFill
 | 
	
	
		
			
				|  | @@ -56,15 +60,11 @@ Private Function Rectangle(Width As Double, Height As Double)
 | 
	
		
			
				|  |  |          
 | 
	
		
			
				|  |  |      sw = s1.SizeWidth
 | 
	
		
			
				|  |  |      sh = s1.SizeHeight
 | 
	
		
			
				|  |  | -  
 | 
	
		
			
				|  |  | -    Text = "建立矩形:" + Str(sw) + " x" + Str(sh) + "mm"
 | 
	
		
			
				|  |  | -    ' MsgBox Text
 | 
	
		
			
				|  |  | -    
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      Text = Trim(Str(sw)) + "x" + Trim(Str(sh)) + "mm"
 | 
	
		
			
				|  |  |      Set d = ActiveDocument
 | 
	
		
			
				|  |  | -    Set size = d.ActiveLayer.CreateArtisticText(O_O + sw / 2 - 25, sh + 10, Text)
 | 
	
		
			
				|  |  | +    Set size = d.ActiveLayer.CreateArtisticText(O_O.x + sw / 2 - 25, O_O.y + 10, Text)  '// O_O.y + 10  标注尺寸上移 10mm
 | 
	
		
			
				|  |  |      size.Fill.UniformColor.CMYKAssign 0, 100, 100, 0
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  End Function
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  Private Function setRectangle(Width As Double, Height As Double)
 | 
	
	
		
			
				|  | @@ -83,7 +83,6 @@ Private Function setRectangle(Width As Double, Height As Double)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  End Function
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  Private Function GetClipBoardString() As String
 | 
	
		
			
				|  |  |      On Error Resume Next
 | 
	
		
			
				|  |  |      Dim MyData As New DataObject
 | 
	
	
		
			
				|  | @@ -92,4 +91,3 @@ Private Function GetClipBoardString() As String
 | 
	
		
			
				|  |  |      GetClipBoardString = MyData.GetText
 | 
	
		
			
				|  |  |      Set MyData = Nothing
 | 
	
		
			
				|  |  |  End Function
 | 
	
		
			
				|  |  | -
 |