如何在VBA中格式化OLEObject?

时间:2019-06-17 16:21:32

标签: excel vba

我有一个代码,用于将附加文件插入到特定的列并调整其大小,以使其完美地填充单元格。我现在唯一的问题是该对象只是一个空白矩形,如果单元格中甚至没有东西,也很难发现。

我已经尝试过IconLabel:=Range("A" & ActiveCell.Row),以便它显示该行的ID号,但似乎显示它已经很伸直,甚至看不到任何东西。

Sub Macro1()
    Range("X" & ActiveCell.Row).Select

    Dim vFile As Variant, Sh As Object
    vFile = Application.GetOpenFilename("All Files,*.*", Title:="Find file to insert")
    If vFile = False Then Exit Sub

    Dim OleObj As OLEObject
    Set OleObj = ActiveSheet.OLEObjects.Add(Filename:=vFile, Link:=False, DisplayAsIcon:=True, IconFileName:= _
        "C:\WINDOWS\Installer\{90110409-6000-11D3-8CFE-0150048383C9}\xlicons.exe", _
        IconIndex:=0, IconLabel:=Range("A" & ActiveCell.Row).Value)
    OleObj.ShapeRange.LockAspectRatio = msoFalse
    OleObj.Height = Range("X" & ActiveCell.Row).Height
    OleObj.Width = Range("X" & ActiveCell.Row).Width
End Sub

1 个答案:

答案 0 :(得分:-1)

由于vbRed,这会使单元格变成红色,而且,它比标准单元格少大约4倍:

With OleObj
    .ShapeRange.LockAspectRatio = msoFalse
    .Height = Range("X" & ActiveCell.Row).Height / 2
    .Width = Range("X" & ActiveCell.Row).Width / 2
    .Interior.Color = vbRed
End With

因此,它将是不同的且可见的。这些是VBA库中的其他内置颜色(按 F2 ):

enter image description here