Excelに画像を貼り付けたときに縮小するマクロ
となりの人が欲しいというので、
昔後輩がやってたなあと思いつつ作ってみた。
Sub reduceImage() REDUCE_RATE = 0.75 ' 貼り付け ActiveSheet.Paste Selection.ShapeRange.LockAspectRatio = msoTrue ' 縮小 Selection.ShapeRange.Height = Selection.ShapeRange.Height * REDUCE_RATE Selection.ShapeRange.Width = Selection.ShapeRange.Width * REDUCE_RATE End Sub
ってやって、ツール → マクロ → マクロのオプション(Excel2003の場合って書かないとダメか)で、Ctrl + qとかに割り当てて、
画像をコピーしてから、Ctrl + qで貼り付けってやると、
縮小して表示されます。
ってはずだったのだが、なんか75%にしたつもりが、56%になってしまう。
なぜだか式の右辺が2回評価されている(?)ような雰囲気。
Sub reduceImage() REDUCE_RATE = 0.75 ' 貼り付け ActiveSheet.Paste Selection.ShapeRange.LockAspectRatio = msoTrue ' 縮小 targetHeight = Selection.ShapeRange.Height * REDUCE_RATE targetWidth = Selection.ShapeRange.Width * REDUCE_RATE Selection.ShapeRange.Height = targetHeight Selection.ShapeRange.Width = targetWidth End Sub
っていう風に、一回変数に代入したらできた。