0
画像のリストとそのサイズ(幅/高さ)をspreadshitするマクロを使用しようとしています。私はマクロを実行すると数秒間実行され、フォルダ内の2000個のイメージのうち116個のレコードを取得し、オートメーションエラーでクラッシュするだけではありません。Excel VBA - オートメーションエラー
私はfixexを適用するために調査し、私はアップデート、repoarオフィスなどで見つけることができ、何もこの問題を修正していません。
Public Sub Image()
Dim strFile As String
Dim stdPic As StdPicture
Dim lngWidth As Long
Dim lngHeight As Long
Dim strPath As String
Dim lngRow As Long ' Made this a Long just in case you have a LOT of pictures
strPath = "C:\IMAGES\"
' Get all files (we'll filter the results below)
' strFile = Dir$(strPath & "\*.jpg")
strFile = Dir$(strPath & "\*.*")
' Find the last row in Col A
lngRow = Range("A10000").End(xlUp).Row
Do While Len(strFile)
' Select the picture types you want. In this case jpg, bmp and png
If UCase$(Right$(strFile, 4)) = ".JPG" Or _
UCase$(Right$(strFile, 4)) = ".BMP" Or _
UCase$(Right$(strFile, 4)) = ".PNG" Then
Set stdPic = LoadPicture(strPath & "\" & strFile)
lngRow = lngRow + 1
Range("A" & lngRow).Value = strFile
Range("B" & lngRow).Value = Round(stdPic.Width/26.4583)
Range("C" & lngRow).Value = Round(stdPic.Height/26.4583)
End If
strFile = Dir$
Loop
End Sub
誰もがアイデア、なぜこれが起こっているがありますか?
可能性が高い画像ファイルのいずれかをロードするために失敗しています。 'set stdPic'行をいくつかの適切なエラー処理とそれが画像をロードしたことを確認してラップします。もう一つの有用な保護手段は、 "〜image.JPG"のようなテンポラリファイルを避けるために〜で始まるファイルを避けることです。 – Zerk
したがって、特定のイメージを削除してもまだ116を実行して停止します。 :-( – Slavisha
'Set stdPic = LoadPicture ...'の直前に 'Debug.Print"を追加して読み込み: "&strPath&" \ "&strFile'これは読み込みしようとしている画像を確認するものです。奇妙なことに他のものと違うものがあるかもしれません。 – BruceWayne