0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Word内の画像サイズを一括で変更してしまおう

Posted at

Wordで画像並べてみたけど、、、

うまく収まらない!
サイズ一括で変更できなくて手間!!!

なんですよね、、、

例えばWordで論文なり何なり文書を作成しているときに、画像サイズを揃えて並べるじゃないですか。

そんなときに、画像を一括で処理するVBAがありえん便利なのです。

ある程度パッケージ化されていた方がパクリ学びやすいし、アレンジもしやすいと思うので、

今回はWordの文書内の画像を一括で指定サイズの正方形にするスクリプトを紹介しようと思います!!!

  • 一括で指定倍率に拡大する
    は今後作成します

Wordの文書内の画像を一括で指定サイズの正方形にする

なぜ正方形?なぁぜなぁぜ?と思う方いると思います。

、、、仕事で必要だったからです!!!

こんな使い道の狭すぎるマクロを書くの、自分だって不本意なんですよ。
ただ、備忘録的に残しておくと何かの役に立つのではないかと思ってます。

今回の要件は、

  • もとは長方形の画像
  • 縦横の短いほうに合わせて正方形にする
  • 縦横の長いほうは中央で切り取る
  • サイズを指定する
    です

申し訳ないのですが、今回のスクリプトはかなり簡便なので、行内図すべて含みます。画像以外に図形がある場合はそれも対象になります。

では早速コードです

コピペしてください。

word内での図形設定にあるサイズ(mm)と、バックグラウンド処理で使われるサイズ(point)が違うみたいで、補正してます。

Sub size_square()
'
' 1 mm = 2.85 ポイント
'
  Dim Image As Object
  Dim size As Double
  
  '画像のサイズを入力
  size = InputBox("size (mm) : ") * 2.85

  For Each Image In ActiveDocument.InlineShapes
    If Image.Type = wdInlineShapePicture Then
      '縦横の大小で場合分け
      If Image.Width = Image.Height Then
      '縦横の長さを揃えるために両端をcropする
      ElseIf Image.Width > Image.Height Then
        With Image.PictureFormat
          .CropLeft = (Image.Width - Image.Height) / 2
          .CropRight = (Image.Width - Image.Height) / 2
        End With
      'こちらも同じく
      Else
        With Image.PictureFormat
          .CropTop = (Image.Height - Image.Width) / 2
          .CropBottom = (Image.Height - Image.Width) / 2
        End With
      End If
      '縦横比を固定
      Image.LockAspectRatio = msoTrue
    'サイズを変更
    Image.Width = size
    End If
 Next Image
End Sub
      

今回は私の都合で敢えて正方形にした上でサイズを変更しましたが、そのままの縦横比を固定してサイズを変更したい場合は下のようにすればいいです!!

Sub size()
'
' 1 mm = 2.85 ポイント
'
  Dim Image As Object
  Dim size As Double
  
  '画像のサイズを入力
  size = InputBox("size (mm) : ") * 2.85

  For Each Image In ActiveDocument.InlineShapes
    '縦横比を固定
    Image.LockAspectRatio = msoTrue
    'サイズを変更
    Image.Width = size
 Next Image
End Sub
      

おわり

簡単でしたね!

次回はサイズはそのままでzoomするスクリプトをご紹介します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?