Это мне потребовалось много времени, чтобы получить эту работу (пока я не попробовал DoEvents
)
Sub FadeInFadeOut()
Dim r As Range
Set r = Selection
ActiveSheet.Shapes("Rectangle 1").Select
Selection.ShapeRange.Fill.Transparency = 1
For i = 1 To 100
Selection.ShapeRange.Fill.Transparency = 1 - i/100
DoEvents
Next
For i = 1 To 100
Selection.ShapeRange.Fill.Transparency = i/100
DoEvents
Next
r.Select
End Sub
Он работает на Автоформе я место на листе.
Примечание:
Вы должны настроить для регулировки Fade-в/исчезать из скорости.
EDIT # 1:
Вот некоторые нездоровой код (на основе Recorder) для сбрасывания автофигуры на листе и наполняя его Картина:
Sub PicturePlacer()
Dim sh As Shape
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 312.75, 176.25, 266.25, 129.75). _
Select
Selection.Name = "Sargon"
Application.CommandBars("AutoShapes").Visible = False
Range("G4").Select
ActiveCell.FormulaR1C1 = "123"
Range("G5").Select
ActiveSheet.Shapes("Sargon").Select
Selection.ShapeRange.Fill.Transparency = 0.56
Selection.ShapeRange.Line.Weight = 0.75
Selection.ShapeRange.Line.DashStyle = msoLineSolid
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Line.Transparency = 0#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.ForeColor.SchemeColor = 64
Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 255)
Selection.ShapeRange.Fill.BackColor.RGB = RGB(255, 255, 255)
Selection.ShapeRange.Fill.UserPicture "C:\Users\garys\Pictures\babies.jpeg"
End Sub
Оставаться в Назовите форму и используйте это имя во всех кодах, которые ссылаются на Shape.
Вы можете использовать API SetLayeredWindowAttributes для установки прозрачности формы. Ему нужен hWnd, поэтому я не думаю, что это будет возможно с изображением. –
Получаете ли вы ту же ошибку, если используете вместо этого метод '.Picture.Insert',' .Shapes.AddPicture'? –