View Single Post
 
Old 03-01-2016, 11:20 PM
Sinsearach Sinsearach is offline Windows 7 64bit Office 2010 64bit
Novice
 
Join Date: Mar 2016
Posts: 2
Sinsearach is on a distinguished road
Question TrueColor BMP “fonts” in word w/ replace text>bmp script (trouble)

Note: Until few days ago I had never touched VBA, let alone any real programming.

I have read through the top several dozen google returns on 'vba replace text with images' and they either cannot be extended to several dozen searches (94 char bmps) or require a dialog box for each or are far too complex for me to think about fiddling with.

Here I will be using my 94 bmps each 32^2 px as my 'font' to substitute for what I type with this script. This is what I've cobbled together (Im only testing with a few chars 1st)

Problem: It only replaces 1 instance of each character.

Code:
Sub InsertImages()
 
With ActiveDocument
  Selection.Find.ClearFormatting
 
  With Selection.Find
    .Forward = True
    .Text = "0"
    .Replacement.Text = ""
    .Format = False
    .MatchCase = False
    .MatchWholeWord = Flase
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
  End With
  
  If Selection.Find.Execute Then
    Selection.InlineShapes.AddPicture FileName:= _
      "C:\BMP Fonts\Q0.bmp", LinkToFile:=False, _
      SaveWithDocument:=True
 
  ElseIf Selection.Find.Wrap = wdFindContinue Then
  End If
 
  Selection.Find.ClearFormatting
 
  With Selection.Find
    .Forward = True
    .Text = "1"
    .Replacement.Text = ""
    .Format = False
    .MatchCase = False
    .MatchWholeWord = Flase
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
  End With
 
  If Selection.Find.Execute Then
    Selection.InlineShapes.AddPicture FileName:= _
      "C:\BMP Fonts\Q1.bmp", LinkToFile:=False, _
      SaveWithDocument:=True
 
  ElseIf Selection.Find.Wrap = wdFindContinue Then
  End If
 
End With
 
End Sub
It works fine except for 2 that issues remain:

1: only replacing 1 instance

2: Sometimes it doesn't even start at the beginning of my document, even with cursor placed there or entire document highlighted (as if it runs "too fast")

1st issue is critical, 2nd is tolerable.

I found this for replacing all text:

Selection.Find.Execute Replace:=wdReplaceAll

but it ONLY works for with substituting text, not images.

Help!

-Laters

Last edited by Sinsearach; 03-02-2016 at 12:57 AM. Reason: Added code tags & formatting
Reply With Quote