大きな表の中に、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
No.1ベストアンサー
- 回答日時:
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
No.2
- 回答日時:
No.1の回答者です。
私が提示したマクロでも結果は同じなのですか?
マクロの回数を減らすなどをしても、結果は同じですか?
AllRESIZE66のマクロは、選択範囲のみにある行内画像をリサイズ
するものなので、全選択しないで、必要な範囲のみ選択して実行
してみてはいかが(リサイズする画像がある範囲のみ)。
マクロの実行回数が減るだけでも、多少は違うかもしれないので。
これでも駄目だと、私には提供するようなスキルがありません。
他の回答が付くのを待つか、新規質問で処理が遅くなる原因を回答
されるのを待ってみてはいかが。
Wordのマクロに関する資料が少なく、処理を早くするものもExcel
ほど多くの資料がありません
enunokokoros様
はい、アドバイス頂いたマクロでも結果は一緒でした。なぜ遅くなるのか理由がわからず問い合わせした次第です。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- その他(Microsoft Office) ワードのマクロについて教えてください。 1 2023/01/22 11:43
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/03/01 15:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/06/19 10:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
EXCELのセルへ、デジタル時計を...
-
Wordで「原稿用紙○枚」を換算す...
-
マクロ 実行ボタンを押さずに...
-
Excelのワークシート上に検索窓...
-
エクセル グラフの軸の最小値最...
-
TeraTermのマクロについて
-
開いているフォルダを全て閉じ...
-
複数ファイルにある特定のシー...
-
Wordでマクロを用いたチェック...
-
エクセルで複数のシートをまと...
-
Excelマクロでオプションボタン...
-
Excel文字列中の太字(Bold)部分...
-
エクセルのマクロ機能で前のシ...
-
モジュール内のマクロを全て実...
-
ワードからエクセルへ貼り付け...
-
Accessのマクロで「yes、no」の...
-
エクセル ピボットテーブルの...
-
Excel VBA のdebug(F8キー) が...
-
ワードで画像を自動で挿入する方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
EXCELのセルへ、デジタル時計を...
-
マクロ 実行ボタンを押さずに...
-
複数ファイルにある特定のシー...
-
Excelのワークシート上に検索窓...
-
Excel VBA のdebug(F8キー) が...
-
Excelを開いた時に表示さ...
-
エラーになってないのにVBA...
-
エクセルのマクロ機能で前のシ...
-
エクセル グラフの軸の最小値最...
-
モジュール内のマクロを全て実...
-
EXCEL 複数のシートの同一の位...
-
エクセルで複数のシートをまと...
-
ワードからエクセルへ貼り付け...
-
【Excel VBA】エラー番号400
-
Wordの画面を左右にスクロール...
-
Excelマクロでオプションボタン...
-
TeraTermのマクロについて
-
マクロ ブックをマクロなしでコ...
-
Wordで「原稿用紙○枚」を換算す...
おすすめ情報
アドバイスありがとうございます。
メモリは8GBにしており、WORDファイルサイズは418MBです。タスクマネージャーで43%の使用率ですので、メモリーの問題ではないように思えます。
ご提案頂いたParagraphFormat.Alignmentの部分を実行しない設定にしましたが、結果は同じ状況でした。
すべての図を66mmにするのではないため、一度にサイズ変更にすることは出来ず、選択図ごとに修正しています。
最初の図を選択した場合には瞬時サイズ変更できますが、最後に位置する図を選択した場合には8秒かかっております。 諦めるしかないのでしょうか?