vbscript - 如何通过第一个数字逐个使用文件?

时间:2013-01-15 09:41:08

标签: vbscript powerpoint

你可以给我一个建议吗?

我正在使用Windows并使用MS power point,我想自动使用我的图片文件

他们被命名为

1_MOD_82.1542.bmp
2_MOD_102.8821.bmp
3_MOD_152.3541.bmp

等等..我想用它代替输入

ActiveWindow.Selection.SlideRange.Shapes.AddPicture(Filename:="F:\somedir\1_MOD_82.1542"

所以我想有一些循环(但这段代码只是想法,不起作用)

for i:=0, i++,i<10 do
ActiveWindow.Selection.SlideRange.Shapes.AddPicture(Filename:="F:\somedir\%i*"

我想制作一个循环,通过开始编号来使用图像文件。

1 个答案:

答案 0 :(得分:0)

添加内循环:

Set fso = CreateObject("Scripting.FileSystemObject")

For i = 0 To 9
  For Each f In fso.GetFolder("F:\somedir").Files
    If f.Type = "Bitmap-Image" Then
      If CInt(Left(f.Name, 1)) = i Then
        ActiveWindow.Selection.SlideRange.Shapes.AddPicture(f.Path)
      End If
    End If
  Next
Next

检查以确保第一个字符是数字可以像这样添加:

If f.Type = "Bitmap-Image" Then
  c = Left(f.Name, 1)
  If IsNumeric(c) Then
    If CInt(c) = i Then
      '...
    End If
  End If
End If

处理图像的另一个(更详细的)选项是将它们枚举为断开连接的recordset,然后filter记录集。这样,您就不必在每个循环周期中枚举images文件夹中的所有文件。

Set fso = CreateObject("Scripting.FileSystemObject")
Set rs  = CreateObject("ADOR.Recordset")
rs.Fields.Append "Name", 200, 80
rs.Fields.Append "Path", 200, 255
rs.Open

For Each f In fso.GetFolder("F:\somedir").Files
  If f.Type = "Bitmap-Image" Then
    rs.AddNew
    rs("Name").Value = f.Name
    rs("Path").Value = f.Path
    rs.Update
  End If
Next

For i = 0 To 9
  rs.Filter = "Name LIKE '" & i & "%'"
  rs.MoveFirst
  Do Until rs.EOF
    ActiveWindow.Selection.SlideRange.Shapes.AddPicture(rs("Path").Value)
    rs.MoveNext
  Loop
Next