请写一个宏代码,让WPS PPT每一个文本框的文字,随机填充不同的图案,图案来源于电脑文件夹,可以自定义
时间: 2024-03-11 12:46:44 浏览: 222
以下是一个可以实现你要求的 VBA 宏代码,它可以随机从指定的文件夹中选择一个图片,并将其用作文本框的填充图案。请注意,你需要按照代码中的注释修改一些参数,使其符合你的需求。
```VBA
Sub FillShapesWithRandomPattern()
Dim slide As Slide
Dim shape As Shape
Dim folderPath As String
Dim fileList() As String
Dim fileCount As Integer
Dim randomIndex As Integer
'请将 folderPath 修改为你想要使用的文件夹的路径
folderPath = "C:\Users\Username\Desktop\Images"
'获取文件夹中的所有文件
fileList = GetFileList(folderPath)
fileCount = UBound(fileList)
'遍历每一页中的文本框
For Each slide In ActivePresentation.Slides
For Each shape In slide.Shapes
If shape.Type = msoTextBox Then
'随机选择一个文件
randomIndex = Int((fileCount + 1) * Rnd())
'将文件用作填充图案
shape.Fill.UserPicture fileList(randomIndex)
End If
Next shape
Next slide
End Sub
Function GetFileList(folderPath As String) As String()
Dim fileList() As String
Dim fileName As String
Dim i As Integer
'获取文件夹中的所有文件
fileName = Dir(folderPath & "\*.*")
While fileName <> ""
If Not (fileName = "." Or fileName = "..") Then
ReDim Preserve fileList(i)
fileList(i) = folderPath & "\" & fileName
i = i + 1
End If
fileName = Dir()
Wend
GetFileList = fileList
End Function
```
这个代码会遍历每一页中的文本框,并随机选择一个文件夹中的图片作为填充图案。请确保将 `folderPath` 变量修改为你想要使用的文件夹的路径。另外,你可以通过修改 `shape.Fill.UserPicture` 来使用不同的填充方式,例如使用 `shape.Fill.Patterned` 来使用不同的图案填充。
阅读全文