Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Excel 2010)
画像挿入について
投稿日時: 19/06/25 11:48:16
投稿者: ラングドシャ

お願いします。
以下のコードで\\192.168.1.xx\ITEM\ の画像を貼り付けています。
AA列に画像ファイル名があります。
このコードの場合、画像が無い場合はそこでストップしてしまいます。
画像が無くても、あるところだけ貼り付けるよう変更したいのですが
どのようにすればよろしいでしょうか?
よろしくお願いいたします。
 

Sub 画像挿入()

    Dim myjpg  As Shape
    Dim myPath As String
    Dim a As Double, b As Double, aa As Double, bb As Double
    Dim i As Long
        
    Range("C4").Select
    
    myPath = "\\192.168.1.xx\ITEM\"
    Application.ScreenUpdating = False
               
    For i = 4 To Range("AA65536").End(xlUp).Row
    
    'On Error Resume Next
    
    If Dir(myPath & Cells(i, 27)) <> "" Then
    
       Set myjpg = ActiveSheet.Shapes.AddPicture( _
            Filename:=myPath & Cells(i, 27).Value, _
            LinkToFile:=False, _
            SaveWithDocument:=True, _
            Left:=Selection.Left, _
            Top:=Selection.Top, _
            Width:=False, _
            Height:=False)            
        With myjpg
        
            .ScaleHeight 1, msoTrue
            .ScaleWidth 1, msoTrue
        
            a = .Height
            b = .Width
            aa = Cells(i, 2).Height - 5
            bb = Cells(i, 2).Width - 5
            
            If a > b Then
            
                .Height = aa
                .Width = b * aa / a
                
                If .Width > bb Then
                
                    .Height = a * bb / b
                    .Width = bb
                    
                End If
                
            Else
               .Height = a * bb / b
                .Width = bb
                
                If .Height > aa Then
                
                    .Height = aa
                    .Width = b * aa / a
                    
                End If
                
            End If
            
            .Left = Cells(i, 2).Left + (bb - .Width + 5) / 2#
            .Top = Cells(i, 2).Top + (aa - .Height + 5) / 2#
            
        End With
        
    Else
    Exit For
    End If
 
  Next
    Application.ScreenUpdating = True
    
End Sub

回答
投稿日時: 19/06/25 11:57:08
投稿者: WinArrow
投稿者のウェブサイトに移動

ご自分で作成したコードですか?
だとしたら、コードの意味は理解していますよね?
 
因みに
Exit For
というコードはどのような意図で使っていますか?

投稿日時: 19/06/25 12:00:40
投稿者: ラングドシャ

WinArrow様
 
ありがとうございます。
私は作成しておりません。
前任者が残していったものです。

投稿日時: 19/06/25 12:01:39
投稿者: ラングドシャ

WinArrow様
 
途中できれてしまいました。
ですので、当方はよくわかっておりません。申し訳ありません。

回答
投稿日時: 19/06/25 12:09:51
投稿者: WinArrow
投稿者のウェブサイトに移動

前任者が作成したコードですか?
 
今後、要望が変わったりした場合、
この板を下請け代わりに使うのでしょうか?
コードの意味や意図をきちんと勉強することをお勧めします。
 
貴方が仕事を引き継ぐとき
後継者にどのよに引き継ぐのですか?

投稿日時: 19/06/25 13:44:55
投稿者: ラングドシャ

WinArrow 様
 
ありがとうございます。
Exit For の意味を調べて解決いたしました。
ヒントをあたえてくださりありがとうございました。