Bevat URL een afbeelding?

Onderstaande code bevat 2 code blokken om te controleren of een URL een verwijzing is naar een afbeelding: “IsImageURL” om de status van de URL te verkrijgen c.q. of het om een afbeelding gaat en “CheckURLs” om elke URL in bereik $A$1:$A$15 te doorlopen. Te beginnen bij cel “$A$1”. Nieuwe module in je werkboek opnemen middels Alt+F11 en kiezen voor Invoegen | Module en dan de code plakken.

Code “CheckURLs” uitvoeren. Indien het om een ongeldige verwijzing gaat (dus geen afbeelding), komt er een foutbeschrijving in kolom “B” te staan.

Deze methode is gebaseerd op bestandsextensies en dat kan een beperking zijn. De “IsImageURL” functie kijkt of het einde van de URL eindigt op een gebruikelijke afbeelding extensie zoals (.jpg, .jpeg, .png, .gif, .bmp, .webp).

Function IsImageURL(URL As String) As Boolean
    ' List of common image file extensions
    Dim imageExtensions As Variant
    Dim extension As String
    Dim i As Integer
    
    ' Define common image extensions
    imageExtensions = Array(".jpg", ".jpeg", ".png", ".gif", ".bmp", ".webp", ".svg")
    
    ' Get the file extension from the URL
    extension = LCase(Right(URL, 5)) ' Check last 5 characters to cover .jpeg, .webp, etc.
    
    ' Check if the URL ends with an image extension
    For i = LBound(imageExtensions) To UBound(imageExtensions)
        If InStr(extension, imageExtensions(i)) > 0 Then
            IsImageURL = True
            Exit Function
        End If
    Next i
    
    IsImageURL = False
End Function

Sub CheckURLs()
    Dim ws As Worksheet
    Dim rng As Range
    Dim cell As Range
    
    ' Set reference to Sheet1
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Set rng = ws.Range("A1:A15")
    
    ' Loop through each cell in the range
    For Each cell In rng
        If Not IsEmpty(cell) Then
            ' Write TRUE/FALSE in the adjacent column (e.g., column B)
            cell.Offset(0, 1).Value = IsImageURL(cell.Value)
        End If
    Next cell
End Sub

Leave a Reply

Your email address will not be published. Required fields are marked *