2017-01-22 23 views
0

セルに指定されたディレクトリにあるイメージ名(image1.png)が含まれている場合、イメージをセルに追加するマクロを作成しています。したがって、ディレクトリ内に "image1.png"が見つかると、画像をセルに追加して次の行に移動します。ここまでのコードはこれまでのところです:ファイルがディレクトリに存在しない場合は行をスキップ

Option Explicit 

Sub insertPicss() 
Dim ws As Worksheet, cell As Range 
Set ws = ThisWorkbook.Sheets("Sheet1") 

Dim fPath, fDir As String 

fDir = "Macintosh HD:Users:Connor:Desktop:siteimages:" 
For Each cell In ws.[A1:A12] 
    fPath = fDir & cell.Value 
    With ws.Pictures.Insert(fPath) 
     With .ShapeRange 
      .Width = 48 
      .Height = 48 
     End With 
     .PrintObject = True 
     .Top = cell.Top 
     .Left = cell.Left 
    End With 
Next 

End Sub 

問題は、それが見ているディレクトリにあるイメージ名を持たない行で停止します。

対応するディレクトリにそのイメージがなく、行をスキップしてすべての行の末尾にする方法はありますか。

答えて

0

Windowsでは、ファイル/フォルダが存在するかどうかを確認するためにDirを使用してください。

以下はWindowsで動作しますが、Macについてはわかりません。

Option Explicit 

Sub insertPicss() 
    Dim ws As Worksheet, cell As Range 
    Set ws = ThisWorkbook.Sheets("Sheet1") 

    Dim fPath, fDir As String 

    fDir = "Macintosh HD:Users:Connor:Desktop:siteimages:" 
    For Each cell In ws.[A1:A12] 
     fPath = fDir & cell.Value 
     If Dir(fPath) = cell.Value Then ' If Not Dir(fPath) = "" Then 
      With ws.Pictures.Insert(fPath) 
       With .ShapeRange 
        .Width = 48 
        .Height = 48 
       End With 
       .PrintObject = True 
       .Top = cell.Top 
       .Left = cell.Left 
      End With 
     End If 
    Next 

End Sub 
+0

ニース!ありがとう、私はMacを使用していますが、私はそれを行ってみましょう。 – CFlynn

関連する問題