Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Word VBA:根据样式调整所有内联形状的大小_Vba_Image_Ms Word - Fatal编程技术网

Word VBA:根据样式调整所有内联形状的大小

Word VBA:根据样式调整所有内联形状的大小,vba,image,ms-word,Vba,Image,Ms Word,我写了200多个屏幕截图的大型软件手册。我正在尝试自动化一些图像格式化 我在Techsmith SnagIt中编辑图片,然后粘贴到Word中。我不想在Snagit中设置大小,因为我需要在Word中灵活地移动它们 我发现下面的代码根据现有宽度调整文档中所有图像的大小 Sub PicSize_ALL_17cm() Dim š As InlineShape Dim Aspect As Double For Each š In ActiveDocument.InlineShapes Aspect

我写了200多个屏幕截图的大型软件手册。我正在尝试自动化一些图像格式化

我在Techsmith SnagIt中编辑图片,然后粘贴到Word中。我不想在Snagit中设置大小,因为我需要在Word中灵活地移动它们

我发现下面的代码根据现有宽度调整文档中所有图像的大小

Sub PicSize_ALL_17cm()
Dim š As InlineShape
Dim Aspect As Double
For Each š In ActiveDocument.InlineShapes
    Aspect = š.Width / š.Height
    If (š.Width > CentimetersToPoints(11)) Then
        š.Width = CentimetersToPoints(11)
        š.Height = š.Width / Aspect
    End If
Next š
End Sub
虽然大多数图像被定义为11厘米,但有时,我需要它们保持页面的全宽

我希望在粘贴这些“全幅”屏幕截图时可以为它们指定不同的样式,然后在上面添加一些代码以忽略基于该样式的图像

有什么想法吗

干杯


Lynette

粘贴图像时,一定要在图像上放置一个字符样式,以保持其大小。然后假设您已经设置了一个名为Preserve的字符样式,您可以使用类似的代码

Sub PicSize_ALL_17cm()
Dim š As InlineShape
Dim Aspect As Double
For Each š In ActiveDocument.InlineShapes
    if s.Range.Style <> "Preserve" then
         Aspect = š.Width / š.Height
         If (š.Width > CentimetersToPoints(11)) Then
             š.Width = CentimetersToPoints(11)
             š.Height = š.Width / Aspect
         End If
    End If
Next š
End Sub
Sub PicSize_ALL_17cm()
DimšAs InlineShape
双色暗象
对于ActiveDocument.InlineShapes中的每个š
如果s.Range.Style“保留”,则
纵横比=š宽/š高
如果(š宽度>厘米点(11)),则
š.宽度=厘米点(11)
š.高度=š.宽度/纵横比
如果结束
如果结束
下一个
端接头

谢谢,这正是我需要的。