通过VBA压缩Excel工作簿中的所有图像

时间:2019-04-21 14:20:42

标签: excel vba

我需要帮助通过VB(电子邮件格式96 ppi)压缩Excel工作簿中的所有图像。

我尝试了sendkeys,但似乎不起作用。

Sub test()

  Dim wsh As Worksheet

  Set wsh = Worksheets("Sheet1")
  wsh.Activate
  wsh.Shapes(1).Select

  SendKeys "%JP", True
  SendKeys "%M", True
  SendKeys "%e", True
  SendKeys "~", True

End Sub

2 个答案:

答案 0 :(得分:0)

以下“解决方案”可能对您有帮助

Sub test()

    Dim wsh As Worksheet

    Set wsh = Worksheets("Sheet1")
    wsh.Activate
    wsh.Shapes(1).Select

    SendKeys "%e", True
    SendKeys "~", True
    Application.CommandBars.ExecuteMso "PicturesCompress"
End Sub

但是,如果您未选择任何图片,则在调用Application.CommandBars.ExecuteMso "PicturesCompress"时会出现以下对话框。如果选择“ Web /屏幕”,则将获得96dpi的分辨率。

enter image description here

答案 1 :(得分:0)

我找到了这个解决方案,并且对我有用。谢谢,Storax

Sub test()

Dim wsh As Worksheet

    Set wsh = Worksheets("Sheet1")
    wsh.Activate
    wsh.Shapes(1).Select

    SendKeys "%w", True
    SendKeys "~", True
    Application.CommandBars.ExecuteMso "PicturesCompress"

End Sub