首次发布以获得一些详尽搜索后找不到的帮助。我相信这对于知道自己在做什么的人来说很容易。
我正在寻找可通过单击形状在形状中循环浏览(保存在计算机中的)背景图像的VBA。我在下面粘贴了两套代码,这为我提供了一个良好的开端,但我不知道如何合并代码以获取所需的结果。
最终,我希望每次单击形状都可以通过以下命令保持循环:
我发现此代码可以很好地通过单击以下按钮来更改形状的颜色:
Sub trafficlight()
Dim WhoAmI As String, sh As Shape
WhoAmI = Application.Caller
With ActiveSheet.Shapes(WhoAmI).Fill.ForeColor
Select Case .RGB
Case vbRed
.RGB = vbGreen
Case vbGreen
.RGB = vbYellow
Case Else
.RGB = vbRed
End Select
End With
End Sub
然后使用以下代码使用保存在计算机上的图像更改形状:
Sub Rectangle9_Click()
Dim WhoAmI As String, sh As Shape
WhoAmI = Application.Caller
With ActiveSheet.Shapes(WhoAmI).Fill
.Visible = msoTrue
.UserPicture "C:\Users\username\Desktop\BackgroundImage1.png"
.TextureTile = msoFalse
End With
End Sub
希望很容易理解。预先感谢您的帮助!
答案 0 :(得分:0)
您需要跟踪当前显示的图像。您可以在每次图像更改时设置一个integer
。
Option Explicit
Sub ChangeShapePic()
Static i As Integer
With ActiveSheet.Shapes(Application.Caller).Fill
Select Case i
Case 0
.UserPicture ("C:\Users\username\Desktop\BackgroundImage1.png")
i = 1
Case 1
.UserPicture ("C:\Users\username\Desktop\BackgroundImage2.png")
i = 2
Case 2
.UserPicture ("C:\Users\username\Desktop\BackgroundImage3.png")
i = 3
Case 3
.Solid
.Transparency = 0#
i = 0
End Select
End With
End Sub