Since you already have urls in your table. Give your web browser control some good use, it does not have the limits you think it has, it's quite contrary to that.
Check the attached database.
Here's the code for the listbox to feed the browser:
Code:
Private Sub lstResults_AfterUpdate()
If Me.lstResults.ListCount > 0 Then
'start over
doc.body.innerHTML = ""
Dim lst As ListBox
Set lst = Me.lstResults
Dim s As Variant
'make canvas
Set container = doc.createElement("div")
With container.Style
.minHeight = "100%" 'cover entire screen
.backgroundColor = "f5f5f5" 'container background
.display = "flex" 'same row
.flexWrap = "wrap" 'responsive
.justifyContent = "center" 'center cards horizonally
.padding = "20px" 'inner spacing
End With
doc.body.appendChild container
'use listbox
For Each s In Me.lstResults.ItemsSelected
Debug.Print Me.lstResults.ItemData(s), Me.lstResults.Column(2, s)
'card
Set card = doc.createElement("div")
With card.Style
.backgroundColor = "fff" 'white card
.margin = "5px" 'outer spacing
.padding = "10px 30px" 'inner spacing
.Width = "100px" 'fixed width
.Height = "100px" 'fixed height
.overflow = "hidden" 'long text cuts off
.borderRadius = "10px" 'round border
.boxShadow = "0 2px 10px rgba(0, 0, 0, 0.1)" 'shadow
End With
'img
Set img = doc.createElement("img")
img.src = Me.lstResults.Column(2, s)
With img.Style
.borderRadius = "50%" 'round border
.display = "block" 'center image
.margin = "0 auto" 'center image
End With
'append selection
card.appendChild img
container.appendChild card
Next s
End If
End Sub
It could be much simpler if we remove the styling, but it looks cool with styles.