有没有一种方法可以旋转OLE对象?

时间:2019-11-08 17:17:52

标签: excel vba

我有一个宏,它将宏从预先格式化的模板附加到当前文档中。此页面根据用户选择插入一张图片,这些图片具有Excel支持的标准图像(即.jpg,.png,.bmp)以及PDF(取自只能保存为PDF / DWG / DXF文件的AutoCAD程序)我遇到的问题是我无法像使用常规图像那样旋转横向打印格式的图像。我知道问题可能在于并非所有的OLE对象都可以旋转并且shaperange选项可能不允许也就是说,是否可以在VBA中执行此操作?

我尝试使用OLEobject shaperange选项,以及将PDF插入为图片(据我所知,MS-Office不支持)。我还尝试过选择OLEobject作为无济于事的形状。

Set rng = crrntWorkbook.Sheets(1).Range("B" & tempRow)
'Allows for the insertion of PDF files into the workbook
Set oleobj = ActiveSheet.OLEObjects.Add(Filename:=txtFileName, link:=False, DisplayAsIcon:=False)
With oleobj
    'Inserts the picture into the correct cell
    oleobj.Top = rng.Top
    oleobj.Left = rng.Left
    'If the image is wider than it's height, image will be scaled down by it's width, otherwise it's height
    If oleobj.Width > oleobj.Height Then
        oleobj.IncrementRotation = 90
        oleobj.Width = 545
        oleobj.Left = (570 - oleobj.Width) / 2
        oleobj.Top = oleobj.Top + 2
        'Centers the image
    Else
        oleobj.Height = 625
        oleobj.Left = (550 - oleobj.Width) / 2
        oleobj.Top = oleobj.Top + 2
    End If
End With

预期结果是图像将在插入时旋转,但是我将收到“运行时错误'438'对象不支持此属性或方法”或“运行时错误-2147024809形状被锁定并如果我使用shaperange方法,将无法旋转”

0 个答案:

没有答案