マクロでの画像サイズの決定(Microsoft Word)
Wordは、ドキュメントに挿入する画像に関するかなりの情報をまとめて保持します。この情報は、Wordが画像のサイズ変更、配置、表示の方法を知るために必要です。ドキュメント内の画像に関する詳細情報を知りたい場合は、Wordが情報を保存する方法について何かを知る必要があります。
画像は、通常の形状またはインライン形状の2種類のグラフィックオブジェクトとして保存されます。通常の形状は、テキストレイヤーに存在するインライン形状とは対照的に、描画レイヤーに存在する形状です。どちらのタイプのオブジェクトも、異なるオブジェクトコレクションとともに保存されます。通常の図形はShapesコレクションにあり、インライン図形はInlineShapesコレクションに保存されます。オブジェクトに関する情報にアクセスするには、小さなVBAを使用する必要があります。
次のVBAマクロはWord2000(またはそれ以降のバージョン)で機能し、ドキュメント内のすべてのグラフィックスオブジェクトのサイズをポイントとピクセルの両方で表示するドキュメントを作成します。
Sub FigureInfo() Dim iShapeCount As Integer Dim iILShapeCount As Integer Dim DocThis As Document Dim J As Integer Dim sTemp As String Set DocThis = ActiveDocument Documents.Add iShapeCount = DocThis.Shapes.Count If iShapeCount > 0 Then Selection.TypeText Text:="Regular Shapes" Selection.TypeParagraph End If For J = 1 To iShapeCount Selection.TypeText Text:=DocThis.Shapes(J).Name Selection.TypeParagraph sTemp = " Height (points): " sTemp = sTemp & DocThis.Shapes(J).Height Selection.TypeText Text:=sTemp Selection.TypeParagraph sTemp = " Width (points): " sTemp = sTemp & DocThis.Shapes(J).Width Selection.TypeText Text:=sTemp Selection.TypeParagraph sTemp = " Height (pixels): " sTemp = sTemp & PointsToPixels(DocThis.Shapes(J).Height, True) Selection.TypeText Text:=sTemp Selection.TypeParagraph sTemp = " Width (pixels): " sTemp = sTemp & PointsToPixels(DocThis.Shapes(J).Width, False) Selection.TypeText Text:=sTemp Selection.TypeParagraph Selection.TypeParagraph Next J iILShapeCount = DocThis.InlineShapes.Count If iILShapeCount > 0 Then Selection.TypeText Text:="Inline Shapes" Selection.TypeParagraph End If For J = 1 To iILShapeCount Selection.TypeText Text:="Shape " & J Selection.TypeParagraph sTemp = " Height (points): " sTemp = sTemp & DocThis.InlineShapes(J).Height Selection.TypeText Text:=sTemp Selection.TypeParagraph sTemp = " Width (points): " sTemp = sTemp & DocThis.InlineShapes(J).Width Selection.TypeText Text:=sTemp Selection.TypeParagraph sTemp = " Height (pixels): " sTemp = sTemp & PointsToPixels(DocThis.InlineShapes(J).Height, True) Selection.TypeText Text:=sTemp Selection.TypeParagraph sTemp = " Width (pixels): " sTemp = sTemp & PointsToPixels(DocThis.InlineShapes(J).Width, False) Selection.TypeText Text:=sTemp Selection.TypeParagraph Selection.TypeParagraph Next J End Sub
Word 97はPointsToPixelsステートメントを認識しないため、このマクロはWord97では機能しません。このステートメントを使用する行を削除する(または独自のPointsToPixels関数を作成する)と、マクロはWord97で正常に機能します。
マクロは通常の形状の名前を返しますが、インライン形状の名前は返さないことに注意してください。これは、Wordがインラインシェイプの名前を保持していないためです。ドキュメントに(ここでも描画レイヤーに)通常の図形を挿入すると、Wordは長方形2や楕円形3などの名前を図形に割り当てます。
注:
このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。
(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(1497)は、Microsoft Word 97、2000、2002、および2003に適用されます。Wordのリボンインターフェイス(Word 2007)用のこのヒントのバージョンを見つけることができます。以降)ここ:
linkマクロでの画像サイズの決定。