Word macro for replacing images with numbered index and moving the image to the end of document
I would like to create a Word macro to separate text and images. The macro should insert the text at first place and move the images inside the text to the end of the document and replace the image with an index showing the number of the image, starting from the first image to the last image. I would appreciate if someone could help with this.
I have looked in many sites and I have developed the following code. This code simply replaces any image in the document with a text which is a kind of index. For example, it replaces the first image with just simple index as “image1.jpg” and so on. But my problem is that I don’t want to just replace the image with a numbered text index. My goal is also to move for example the image 1 to the end of the document. This should happen for the second image in the document which is replacing the 2nd image with a numbered index and then moving the image to the end of the document (after the first image) and so on for other images. I guess that this code must be added with some other code to make this happen. if someone could help, it will help a lot for making web pages suitable for printing on papers using Microsoft word macro. because sometimes it is not always necessary to print the images in the document and the text alone would be enough.
Dim oILShp As InlineShape
Dim ILShpIndex As Integer
For Each oILShp In ActiveDocument.InlineShapes
ILShpIndex = ILShpIndex + 1
'insert text in place where InlineShape is located
ActiveDocument.Range(oILShp.Range.Start, oILShp.Range.End).Text = _
"[Image" & ILShpIndex & ".Jpg]"
'delete picture is not needed - it was simply replaced with text
Next
microsoft-word images macros
add a comment |
I would like to create a Word macro to separate text and images. The macro should insert the text at first place and move the images inside the text to the end of the document and replace the image with an index showing the number of the image, starting from the first image to the last image. I would appreciate if someone could help with this.
I have looked in many sites and I have developed the following code. This code simply replaces any image in the document with a text which is a kind of index. For example, it replaces the first image with just simple index as “image1.jpg” and so on. But my problem is that I don’t want to just replace the image with a numbered text index. My goal is also to move for example the image 1 to the end of the document. This should happen for the second image in the document which is replacing the 2nd image with a numbered index and then moving the image to the end of the document (after the first image) and so on for other images. I guess that this code must be added with some other code to make this happen. if someone could help, it will help a lot for making web pages suitable for printing on papers using Microsoft word macro. because sometimes it is not always necessary to print the images in the document and the text alone would be enough.
Dim oILShp As InlineShape
Dim ILShpIndex As Integer
For Each oILShp In ActiveDocument.InlineShapes
ILShpIndex = ILShpIndex + 1
'insert text in place where InlineShape is located
ActiveDocument.Range(oILShp.Range.Start, oILShp.Range.End).Text = _
"[Image" & ILShpIndex & ".Jpg]"
'delete picture is not needed - it was simply replaced with text
Next
microsoft-word images macros
add a comment |
I would like to create a Word macro to separate text and images. The macro should insert the text at first place and move the images inside the text to the end of the document and replace the image with an index showing the number of the image, starting from the first image to the last image. I would appreciate if someone could help with this.
I have looked in many sites and I have developed the following code. This code simply replaces any image in the document with a text which is a kind of index. For example, it replaces the first image with just simple index as “image1.jpg” and so on. But my problem is that I don’t want to just replace the image with a numbered text index. My goal is also to move for example the image 1 to the end of the document. This should happen for the second image in the document which is replacing the 2nd image with a numbered index and then moving the image to the end of the document (after the first image) and so on for other images. I guess that this code must be added with some other code to make this happen. if someone could help, it will help a lot for making web pages suitable for printing on papers using Microsoft word macro. because sometimes it is not always necessary to print the images in the document and the text alone would be enough.
Dim oILShp As InlineShape
Dim ILShpIndex As Integer
For Each oILShp In ActiveDocument.InlineShapes
ILShpIndex = ILShpIndex + 1
'insert text in place where InlineShape is located
ActiveDocument.Range(oILShp.Range.Start, oILShp.Range.End).Text = _
"[Image" & ILShpIndex & ".Jpg]"
'delete picture is not needed - it was simply replaced with text
Next
microsoft-word images macros
I would like to create a Word macro to separate text and images. The macro should insert the text at first place and move the images inside the text to the end of the document and replace the image with an index showing the number of the image, starting from the first image to the last image. I would appreciate if someone could help with this.
I have looked in many sites and I have developed the following code. This code simply replaces any image in the document with a text which is a kind of index. For example, it replaces the first image with just simple index as “image1.jpg” and so on. But my problem is that I don’t want to just replace the image with a numbered text index. My goal is also to move for example the image 1 to the end of the document. This should happen for the second image in the document which is replacing the 2nd image with a numbered index and then moving the image to the end of the document (after the first image) and so on for other images. I guess that this code must be added with some other code to make this happen. if someone could help, it will help a lot for making web pages suitable for printing on papers using Microsoft word macro. because sometimes it is not always necessary to print the images in the document and the text alone would be enough.
Dim oILShp As InlineShape
Dim ILShpIndex As Integer
For Each oILShp In ActiveDocument.InlineShapes
ILShpIndex = ILShpIndex + 1
'insert text in place where InlineShape is located
ActiveDocument.Range(oILShp.Range.Start, oILShp.Range.End).Text = _
"[Image" & ILShpIndex & ".Jpg]"
'delete picture is not needed - it was simply replaced with text
Next
microsoft-word images macros
microsoft-word images macros
edited Dec 28 '18 at 12:38
harrymc
256k14268568
256k14268568
asked Dec 28 '18 at 12:32
VeronicaVeronica
12
12
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
The following will loop through the inline shapes, add paragraphs to the end of the document and move the inline shapes there
Dim oILShp As InlineShape
Dim ILShpIndex As Long
Dim oPara1 As Paragraph
With ActiveDocument
.Content.Paragraphs.Add
For ILShpIndex = 1 To .InlineShapes.Count
Set oILShp = .InlineShapes(1)
Set oPara1 = .Content.Paragraphs.Add
oPara1.Range.InsertParagraphAfter
oPara1.Range.FormattedText = oILShp.Range.FormattedText
.Range(oILShp.Range.Start, oILShp.Range.End).Text = "[Image" & ILShpIndex & ".Jpg]"
Next ILShpIndex
End With
Note that since you need a counter anyways, you can use it to loop through the inlineShapes, using For Each oILShp In ActiveDocument.InlineShapes
will cause you to loop infinitely through the shapes you would keep moving to the end of the document.
Thank you. it is working. with this, it will be easy to copy a website content including images and then pasting in word. Finally, I can choose whether to print the images or not since they are not inside the text.
– Veronica
Jan 2 at 12:12
If this answer works for you, you should mark it as correct -- we don't do this for free after all :)
– cybernetic.nomad
Jan 2 at 13:25
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "3"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1388434%2fword-macro-for-replacing-images-with-numbered-index-and-moving-the-image-to-the%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The following will loop through the inline shapes, add paragraphs to the end of the document and move the inline shapes there
Dim oILShp As InlineShape
Dim ILShpIndex As Long
Dim oPara1 As Paragraph
With ActiveDocument
.Content.Paragraphs.Add
For ILShpIndex = 1 To .InlineShapes.Count
Set oILShp = .InlineShapes(1)
Set oPara1 = .Content.Paragraphs.Add
oPara1.Range.InsertParagraphAfter
oPara1.Range.FormattedText = oILShp.Range.FormattedText
.Range(oILShp.Range.Start, oILShp.Range.End).Text = "[Image" & ILShpIndex & ".Jpg]"
Next ILShpIndex
End With
Note that since you need a counter anyways, you can use it to loop through the inlineShapes, using For Each oILShp In ActiveDocument.InlineShapes
will cause you to loop infinitely through the shapes you would keep moving to the end of the document.
Thank you. it is working. with this, it will be easy to copy a website content including images and then pasting in word. Finally, I can choose whether to print the images or not since they are not inside the text.
– Veronica
Jan 2 at 12:12
If this answer works for you, you should mark it as correct -- we don't do this for free after all :)
– cybernetic.nomad
Jan 2 at 13:25
add a comment |
The following will loop through the inline shapes, add paragraphs to the end of the document and move the inline shapes there
Dim oILShp As InlineShape
Dim ILShpIndex As Long
Dim oPara1 As Paragraph
With ActiveDocument
.Content.Paragraphs.Add
For ILShpIndex = 1 To .InlineShapes.Count
Set oILShp = .InlineShapes(1)
Set oPara1 = .Content.Paragraphs.Add
oPara1.Range.InsertParagraphAfter
oPara1.Range.FormattedText = oILShp.Range.FormattedText
.Range(oILShp.Range.Start, oILShp.Range.End).Text = "[Image" & ILShpIndex & ".Jpg]"
Next ILShpIndex
End With
Note that since you need a counter anyways, you can use it to loop through the inlineShapes, using For Each oILShp In ActiveDocument.InlineShapes
will cause you to loop infinitely through the shapes you would keep moving to the end of the document.
Thank you. it is working. with this, it will be easy to copy a website content including images and then pasting in word. Finally, I can choose whether to print the images or not since they are not inside the text.
– Veronica
Jan 2 at 12:12
If this answer works for you, you should mark it as correct -- we don't do this for free after all :)
– cybernetic.nomad
Jan 2 at 13:25
add a comment |
The following will loop through the inline shapes, add paragraphs to the end of the document and move the inline shapes there
Dim oILShp As InlineShape
Dim ILShpIndex As Long
Dim oPara1 As Paragraph
With ActiveDocument
.Content.Paragraphs.Add
For ILShpIndex = 1 To .InlineShapes.Count
Set oILShp = .InlineShapes(1)
Set oPara1 = .Content.Paragraphs.Add
oPara1.Range.InsertParagraphAfter
oPara1.Range.FormattedText = oILShp.Range.FormattedText
.Range(oILShp.Range.Start, oILShp.Range.End).Text = "[Image" & ILShpIndex & ".Jpg]"
Next ILShpIndex
End With
Note that since you need a counter anyways, you can use it to loop through the inlineShapes, using For Each oILShp In ActiveDocument.InlineShapes
will cause you to loop infinitely through the shapes you would keep moving to the end of the document.
The following will loop through the inline shapes, add paragraphs to the end of the document and move the inline shapes there
Dim oILShp As InlineShape
Dim ILShpIndex As Long
Dim oPara1 As Paragraph
With ActiveDocument
.Content.Paragraphs.Add
For ILShpIndex = 1 To .InlineShapes.Count
Set oILShp = .InlineShapes(1)
Set oPara1 = .Content.Paragraphs.Add
oPara1.Range.InsertParagraphAfter
oPara1.Range.FormattedText = oILShp.Range.FormattedText
.Range(oILShp.Range.Start, oILShp.Range.End).Text = "[Image" & ILShpIndex & ".Jpg]"
Next ILShpIndex
End With
Note that since you need a counter anyways, you can use it to loop through the inlineShapes, using For Each oILShp In ActiveDocument.InlineShapes
will cause you to loop infinitely through the shapes you would keep moving to the end of the document.
answered Dec 28 '18 at 20:01
cybernetic.nomadcybernetic.nomad
1,455112
1,455112
Thank you. it is working. with this, it will be easy to copy a website content including images and then pasting in word. Finally, I can choose whether to print the images or not since they are not inside the text.
– Veronica
Jan 2 at 12:12
If this answer works for you, you should mark it as correct -- we don't do this for free after all :)
– cybernetic.nomad
Jan 2 at 13:25
add a comment |
Thank you. it is working. with this, it will be easy to copy a website content including images and then pasting in word. Finally, I can choose whether to print the images or not since they are not inside the text.
– Veronica
Jan 2 at 12:12
If this answer works for you, you should mark it as correct -- we don't do this for free after all :)
– cybernetic.nomad
Jan 2 at 13:25
Thank you. it is working. with this, it will be easy to copy a website content including images and then pasting in word. Finally, I can choose whether to print the images or not since they are not inside the text.
– Veronica
Jan 2 at 12:12
Thank you. it is working. with this, it will be easy to copy a website content including images and then pasting in word. Finally, I can choose whether to print the images or not since they are not inside the text.
– Veronica
Jan 2 at 12:12
If this answer works for you, you should mark it as correct -- we don't do this for free after all :)
– cybernetic.nomad
Jan 2 at 13:25
If this answer works for you, you should mark it as correct -- we don't do this for free after all :)
– cybernetic.nomad
Jan 2 at 13:25
add a comment |
Thanks for contributing an answer to Super User!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1388434%2fword-macro-for-replacing-images-with-numbered-index-and-moving-the-image-to-the%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown