#1
|
|||
|
|||
Using VBA to find html img code, and insert images dynamically
I am repurposing code that macropod had authored in a previous post for finding html for links, and converting the hyperlinks with custom text in a word document.
For reference that code is below: Code:
Sub ConvertHyperlinks() Dim StrAddr As String, StrDisp As String ' Turn Off Screen Updating Application.ScreenUpdating = False With ActiveDocument.Range With .Find .Text = "\<[Aa] href=([!\>]@)\>([!\<]@)\</a\>" .ClearFormatting .Replacement.ClearFormatting .Replacement.Text = "" .Forward = True .MatchWildcards = True .Wrap = wdFindStop .Execute End With Do While .Find.Found = True StrAddr = Replace(Replace(Replace(Split(Split(.Text, ">")(0), "=")(1), Chr(34), ""), Chr(147), ""), Chr(148), "") StrDisp = Split(Split(.Text, ">")(1), "<")(0) .Hyperlinks.Add Anchor:=.Duplicate, _ Address:=StrAddr, TextToDisplay:=StrDisp .Collapse wdCollapseEnd .Find.Execute Loop End With ' Restore Screen Updating Application.ScreenUpdating = True End Sub Essentially I want the macro to find all instances of <img src="c:\users\8172837\worksheet\test.jpg">, and embed that image into the document. Below is the code I came up with, but I am running into issues. Admittedly I am not understanding the wildcards that macropod used here, but I tried researching to the best of my abilities. Code:
Sub ConvertImages() Dim StrAddr As String ' Turn Off Screen Updating Application.ScreenUpdating = False With ActiveDocument.Range With .Find .Text = "\<img src=([!\>]@)\>" .ClearFormatting .Replacement.ClearFormatting .Replacement.Text = "" .Forward = True .MatchWildcards = True .Wrap = wdFindStop .Execute End With Do While .Find.Found = True StrAddr = Replace(Replace(Replace(Split(Split(.Text, ">")(0), "=")(1), Chr(34), ""), Chr(147), ""), Chr(148), "") InlineShapes.AddPicture FileName:=StrAddr, LinkToFile:=False .Collapse wdCollapseEnd .Find.Execute Loop End With ' Restore Screen Updating Application.ScreenUpdating = True End Sub |
#2
|
||||
|
||||
Try:
Code:
Sub ConvertImageLinks() Dim StrImg As String Application.ScreenUpdating = False With ActiveDocument.Range With .Find .Text = "\<img src=[!\>]@\>" .ClearFormatting .Replacement.ClearFormatting .Replacement.Text = "" .Forward = True .MatchWildcards = True .Wrap = wdFindStop .Execute End With Do While .Find.Found = True StrImg = Replace(Replace(Replace(Split(Split(.Text, ">")(0), "=")(1), Chr(34), ""), Chr(147), ""), Chr(148), "") .Text = vbNullString .InlineShapes.AddPicture StrImg, False, True, .Duplicate .Collapse wdCollapseEnd .Find.Execute Loop End With Application.ScreenUpdating = True End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#3
|
|||
|
|||
Works perfectly!
Is there anyway to parlay alignment and text wrap into this? I tried the code below, but the bolded code does not work. Code:
Sub DSSImages() Dim StrImg As String Application.ScreenUpdating = False With ActiveDocument.Range With .Find .Text = "\<img src=[!\>]@\>" .ClearFormatting .Replacement.ClearFormatting .Replacement.Text = "" .Forward = True .MatchWildcards = True .Wrap = wdFindStop .Execute End With Do While .Find.Found = True StrImg = Replace(Replace(Replace(Split(Split(.Text, ">")(0), "=")(1), Chr(34), ""), Chr(147), ""), Chr(148), "") .Text = vbNullString .InlineShapes.AddPicture StrImg, False, True, .Duplicate .WrapFormat.Type = wdWrapSquare .Collapse wdCollapseEnd .Find.Execute Loop End With Application.ScreenUpdating = True End Sub We need to source all of our images. So I would love to find a way to have the html below, pull in the image, and have a source link below it (where we found the image in the first place). <img src="C:\test\logo.jpg" cap="http://linktothesource.com"> |
#4
|
||||
|
||||
Change:
.InlineShapes.AddPicture StrImg, False, True, .Duplicate to: ActiveDocument.Shapes.AddPicture StrImg, False, True, , , , , .Duplicate Note that the empty arguments allow you to define the size & position - see the VBA help file for more details. Quote:
.Text = vbNullString
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
Tags |
html, img code |
Thread Tools | |
Display Modes | |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Macro Help Swapping HTML Code | pclark2 | Word VBA | 2 | 02-11-2019 03:25 PM |
How to insert a straight table into PPT where the values are dynamically updated? | Officer_Bierschnitt | PowerPoint | 1 | 01-14-2016 10:34 AM |
Search and replace/insert HTML code into Master File using tags | dave8555 | Excel | 2 | 02-23-2014 03:51 PM |
Outlook Web Mail (OWA) - sending email removes html and images | mvrk | Outlook | 0 | 07-30-2013 03:56 AM |
Strange HTML code inside an e-mail | Joostdegrote | Outlook | 0 | 09-13-2010 07:57 AM |