0

アドバイスをいただけますか?

私は Windows で作業しており、MS パワー ポイントを使用しています。picure ファイルを自動的に使用したいと考えています。

彼らは次のように名付けられています

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*"

開始番号で画像ファイルを使用するループを作りたいです。

4

1 に答える 1

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

画像を処理するための別の(より複雑な)オプションは、画像を切断されたレコードセットに列挙してから、レコードセットフィルタリングすることです。そうすれば、ループサイクルごとに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
于 2013-01-15T09:56:19.240 に答える