| 
    
     |  | 「同じ配置で、1ページ内に収めたい」とのことですが、 Word文書のあちこちにある全ページの画像を1つの画像にするということですか?
 いろいろな条件付きで、Microsoft Publisher連携での半自動処理になりますが、
 それで宜しければ・・・
 
 Publisherの画像データを右クリックして
 [図として保存]で保存できるのを利用します。
 (PowerPointにも同じ機能があるのですが、
 スライドからはみ出た部分が削られてしまうので、この案はボツ。
 Excelのグラフ機能にも[図として保存]がありますが、
 2ページ目以降のデータを処理しませんので、これもボツです。)
 それから最新版であるWord2003・Publisher2003のVBAではどうなのか、
 情報が欲しいところですが・・・
 
 余り判らない点もあり、
 結果として酔っ払いが作ったようなマクロになりました。
 
 ・画像データは、[テキストの折り返し]で[行内]に配置されているものとします。
 (行内が指定されていないと、なぜか画像データとして処理されません。)
 
 ・処理の途中で「形式を選択して貼り付け」ダイアログボックスが表示されるので、
 (Publisher VBAでは、形式を指定して貼り付けをするメソッドがないのか?)
 [貼り付け]ラジオボタン・[新しい表]を指定して、[OK]をクリックします。
 
 ・処理が済んだ後、次の手作業が必要です。
 Publisher文書上に画像データがテキストボックス内の表として
 貼り付けされているので、手作業で画像データの横幅を確認します。
 (元のWord文書上の画像が単に縦1列に配置されていただけの場合は、確認不要です。)
 画像の右側部分が隠れている場合は、マウスでテキストボックスと中にある表を右へ広げます。
 画像データを右クリックして、[図として保存]を選択し、
 ファイル名とファイル形式を指定して保存します。
 
 Sub myPicPasteSemiAuto()
 Rem 文書全体を表として(文字列・画像も含めて)
 Rem Publisherへ貼り付けする半自動処理
 Rem *----*----*  *----*----*  *----*----*  *----*----*
 Rem 参照設定:Microsoft Publisher 10.0 Object Library
 Rem *----*----*  *----*----*  *----*----*  *----*----*
 Dim myShape As InlineShape
 Dim myPublisher As Publisher.Application
 Dim myWidthMax As Long
 '
 Dim myCmmdBar As CommandBar
 Dim myCtrl As CommandBarControl
 '
 myWidthMax = -1
 For Each myShape In ActiveDocument.InlineShapes
 If myShape.Width > myWidthMax Then
 myWidthMax = myShape.Width
 End If
 Next myShape
 If myWidthMax = -1 Then
 MsgBox "行内に配置した画像データなし"
 Exit Sub
 End If
 '
 Selection.WholeStory
 Selection.Copy
 Selection.Collapse
 '
 Set myPublisher = CreateObject("Publisher.Application")
 myPublisher.NewDocument
 myPublisher.ActiveWindow.Visible = True
 '
 Set myCmmdBar = myPublisher.Application.CommandBars("Edit") ' 編集
 Set myCtrl = myCmmdBar.FindControl(ID:=755) ' 形式を指定して貼り付け
 myCtrl.Execute
 Rem [新しい表]を指定。
 '
 Rem MsgBox myPublisher.Selection.ShapeRange.Width ' 試行用
 Rem myPublisher.Selection.ShapeRange.Item(1).Width = 300 ' 試行用
 '
 If myPublisher.Selection.ShapeRange.Item(1).HasTable = msoTrue Then
 myPublisher.Selection.ShapeRange.Item(1).Table.Columns.Item(1).Width = myWidthMax
 End If
 '
 Set myShape = Nothing
 Set myPublisher = Nothing
 Set myCmmdBar = Nothing
 Set myCtrl = Nothing
 End Sub ' myPicPasteSemiAuto
 
 
 |  |