特定のページに画像を挿入する(Microsoft Word)
Sumanは、マクロを使用して、特定のドキュメントの10ページに画像を挿入する必要があります。彼は、マクロ内でこれを実行するための最良の方法について疑問に思います。
10ページで画像だけを表示したい場合、タスクはかなり簡単です。マクロを使用して10ページを見つけ、画像を挿入してから、画像の後に改ページを挿入します。これにより、画像の後にすべてが1ページずつ表示され、古いページ10がページ11になり、ページ11がページ12になります。
Sub InsertImage1() Dim PicPath As String PicPath = "C:\My Pictures\My Scans\scan0002.jpg" ActiveDocument.GoTo(What:=wdGoToPage, Count:=10).Select Selection.InlineShapes.AddPicture FileName:=PicPath, _ LinkToFile:=False, SaveWithDocument:=True Selection.InsertBreak Type:=wdPageBreak End Sub
マクロは、画像をインライン形状として挿入します。必要に応じて、画像をフローティングシェイプとして挿入できます。これにより、テキストを画像の周りに折り返すことができます。次のマクロはそれを行い、画像をページの中央に配置します:
Sub InsertImage2() Dim PicPath As String Dim aShape As Shape PicPath = "C:\My Pictures\My Scans\scan0002.jpg" ActiveDocument.GoTo(What:=wdGoToPage, Count:=10).Select Set aShape = Selection.InlineShapes.AddPicture(FileName:=PicPath, _ LinkToFile:=False, SaveWithDocument:=True).ConvertToShape With aShape .WrapFormat.Type = wdWrapTight .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage .RelativeVerticalPosition = wdRelativeVerticalPositionPage .Top = wdShapeCenter .Left = wdShapeCenter .Select End With End Sub
画像を既存の画像(おそらく更新された画像)に置き換えたい場合は、もう少し複雑なマクロを使用して行うことができます。
次のマクロは、目的のページの最初の画像を見つけて、それをインライン形状に置き換えます。
Sub ReplaceImage() Dim r1 As Range Dim r2 As Range Dim nPages As Long Dim nP As Long Dim PicPath As String Dim sTemp As String PicPath = "C:\My Pictures\My Scans\scan0002.jpg" nP = 10 ' Page number on which to replace the image sTemp = "" nPages = ActiveDocument.ComputeStatistics(statistic:=wdStatisticPages) If nP > nPages Then sTemp = "You are trying to go to a non-existent page" Else Set r1 = ActiveDocument.GoTo(What:=wdGoToPage, Count:=nP) If nP = nPages Then Set r2 = ActiveDocument.Range r1.End = r2.End Else Set r2 = ActiveDocument.GoTo(What:=wdGoToPage, Count:=nP + 1) r1.End = r2.Start - 2 End If If r1.InlineShapes.Count = 0 Then sTemp = "Page " & nP & " does not have an inline picture" Else r1.InlineShapes(1).Select Selection.InlineShapes.AddPicture FileName:=PicPath, _ LinkToFile:=False, SaveWithDocument:=True End If End If If sTemp > "" Then MsgBox sTemp End Sub
_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。
(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(13139)は、Microsoft Word 2007、2010、2013、2016、2019、およびOffice365のWordに適用されます。