在 Excel VBA 中旋转形状填充而不旋转形状

Rotate shape fill without rotating shape in Excel VBA

我一直在寻找一种方法来做到这一点,但我没有找到。

我确实阅读了所有我能找到的文章,但它们似乎都集中在如何在不旋转图像的情况下旋转形状。

我会自动添加一个与我选择的范围大小相同的形状,并用 msoFileDialogFilePicker

选择的图像填充该形状
    With shp.fill
        .Visible = msoTrue
        .UserPicture strFilePath
        .TextureTile = msoFalse
        .RotateWithObject = msoFalse
    End With

虽然对我来说,更合乎逻辑的方法是,如果我放置一个矩形并用图像填充它,可能图像方向不正确或者我想拉直图像所以我希望能够旋转只有图像填充而不旋转形状本身。

At this moment I am using 1 button to open the image in paint using Shell, and another button to refresh the image fill once I have manually rotated my image in Paint.

在 VBA 中有没有办法做到这一点?还是我遗漏了什么...

我发现一个不错的用户体验是添加一个按钮“在画图中打开”,并允许用户在图像被操纵后(在我的例子中是旋转的)按照他们想要的方式在画图中操纵图像并保存,我只是刷新图像的来源(通过“刷新”按钮或当我的 sheet 重新获得“焦点”时自动刷新)并且更改反映在我的形状中。