アプリ版:「スタンプのみでお礼する」機能のリリースについて

大きな表の中に、2,500以上のサイズが違う図が入っています。選択した図を下記のマクロで正方形にしています. 結果的には正常なのですが、実行時間がどんどん増えて、最後尾では8秒ほどかかっています。1つの図を選択しているので、実行時間に差があるとは思えないのですが、仕方のないものなのでしょうか? それとも何か改善箇所があるのでしょうか? OSはWindows10,Wordは2016です。
アドバイスよろしくお願いします。


Sub RESIZE66()
'
Selection.InlineShapes(1).LockAspectRatio = msoFalse
Selection.InlineShapes(1).Height = MillimetersToPoints(66)
Selection.InlineShapes(1).Width = MillimetersToPoints(66)
Selection.InlineShapes(1).LockAspectRatio = msoTrue
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
End Sub

質問者からの補足コメント

  • アドバイスありがとうございます。
    メモリは8GBにしており、WORDファイルサイズは418MBです。タスクマネージャーで43%の使用率ですので、メモリーの問題ではないように思えます。
    ご提案頂いたParagraphFormat.Alignmentの部分を実行しない設定にしましたが、結果は同じ状況でした。
    すべての図を66mmにするのではないため、一度にサイズ変更にすることは出来ず、選択図ごとに修正しています。
    最初の図を選択した場合には瞬時サイズ変更できますが、最後に位置する図を選択した場合には8秒かかっております。 諦めるしかないのでしょうか?

    No.1の回答に寄せられた補足コメントです。 補足日時:2018/03/02 11:15

A 回答 (2件)

2000以上の変更した情報が、メモリを圧迫しているのかも?


一度にサイズ変更するのはだめですか?
もしくは、ParagraphFormat.Alignmentの部分を実行しない設定に
してみてはいかが。

修正例

Sub RESIZE66改()
'
Dim i As Integer
i = 66 'ここで66㎜の指定をしている

 With Selection.InlineShapes(1)
  .LockAspectRatio = msoFalse
  .Height = MillimetersToPoints(i)
  .Width = MillimetersToPoints(i)
  .LockAspectRatio = msoTrue
 End With
End Sub


一括で設定するマクロもあります。

Sub AllRESIZE66()
' 選択範囲の行内画像をリサイズ
Dim doc
Dim i, j, ISCont As Integer
i = 66

Set doc = ActiveDocument
ISCont = doc.InlineShapes.Count
 For j = 1 To ISCont
  With Selection.InlineShapes(j)
   .LockAspectRatio = msoFalse
   .Height = MillimetersToPoints(i)
   .Width = MillimetersToPoints(i)
   .LockAspectRatio = msoTrue
  End With
 Next
' 中央揃えを一括で設定
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter

End Sub
この回答への補足あり
    • good
    • 0

No.1の回答者です。


私が提示したマクロでも結果は同じなのですか?
マクロの回数を減らすなどをしても、結果は同じですか?

AllRESIZE66のマクロは、選択範囲のみにある行内画像をリサイズ
するものなので、全選択しないで、必要な範囲のみ選択して実行
してみてはいかが(リサイズする画像がある範囲のみ)。
マクロの実行回数が減るだけでも、多少は違うかもしれないので。
これでも駄目だと、私には提供するようなスキルがありません。
他の回答が付くのを待つか、新規質問で処理が遅くなる原因を回答
されるのを待ってみてはいかが。

Wordのマクロに関する資料が少なく、処理を早くするものもExcel
ほど多くの資料がありません
    • good
    • 0
この回答へのお礼

enunokokoros様

はい、アドバイス頂いたマクロでも結果は一緒でした。なぜ遅くなるのか理由がわからず問い合わせした次第です。
ありがとうございました。

お礼日時:2018/03/02 18:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!