![]() |
|
|
|
#1
|
|||
|
|||
|
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 |
|
|
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 |