質問するログイン新規登録

回答編集履歴

4

Excelバージョンを記載

2020/09/24 01:56

投稿

退会済みユーザー
answer CHANGED
@@ -9,6 +9,7 @@
9
9
 
10
10
  簡単なテストとして、提示されているコードをセル範囲変えて、
11
11
  1848x1200 の画像(PNGで5.02M)で50回ループ実行させて、Excelの使用メモリを見てみました。
12
+ (Excel2013で確認しました)
12
13
  ・Exportあり 41.6M⇒324.6M
13
14
  ・Exportなし 46.7M⇒72.4M(実行後)⇒43.2M(しばらく放置)
14
15
  Exportを実行する度に、リニアにメモリ使用量が増えているようです。

3

修正

2020/09/24 01:56

投稿

退会済みユーザー
answer CHANGED
@@ -12,7 +12,7 @@
12
12
  ・Exportあり 41.6M⇒324.6M
13
13
  ・Exportなし 46.7M⇒72.4M(実行後)⇒43.2M(しばらく放置)
14
14
  Exportを実行する度に、リニアにメモリ使用量が増えているようです。
15
- 別の方法で画像を出力できないか検討した方が良いかもしれません。
15
+ 別の方法で画像を保存できないか検討した方が良いかもしれません。
16
16
 
17
17
  GDI+APIで保存するという方法もあるようです。(検証してないです)
18
18
  [VBAからGDI+を使う資料集](http://gdipluscode.sakura.ne.jp/gdip/gdip.html)

2

追記

2020/09/17 02:55

投稿

退会済みユーザー
answer CHANGED
@@ -12,4 +12,7 @@
12
12
  ・Exportあり 41.6M⇒324.6M
13
13
  ・Exportなし 46.7M⇒72.4M(実行後)⇒43.2M(しばらく放置)
14
14
  Exportを実行する度に、リニアにメモリ使用量が増えているようです。
15
- 別の方法で画像を出力できないか検討した方が良いかもしれません。
15
+ 別の方法で画像を出力できないか検討した方が良いかもしれません。
16
+
17
+ GDI+APIで保存するという方法もあるようです。(検証してないです)
18
+ [VBAからGDI+を使う資料集](http://gdipluscode.sakura.ne.jp/gdip/gdip.html)

1

追記

2020/09/17 02:54

投稿

退会済みユーザー
answer CHANGED
@@ -1,4 +1,15 @@
1
1
  > Set cht = Me.ChartObjects.Add(rg.Left, rg.Top + 100, rg.Width, rg.Height).Chart
2
2
 
3
- ChartObjects.Add してるようですが、これってどこかで削除してるんですか?
3
+ ~~ChartObjects.Add してるようですが、これってどこかで削除してるんですか?
4
- 増え続けそうな気がしますが。
4
+ 増え続けそうな気がしますが。~~
5
+ Delete呼んでたようです。
6
+
7
+ Chart.Exportにメモリーリークがあるという情報もあるようです。
8
+ [Excel VBA chart.export memory leak - how to fix?](https://answers.microsoft.com/en-us/office/forum/all/excel-vba-chartexport-memory-leak-how-to-fix/d7b07488-2f38-410b-b026-b537d6728136)
9
+
10
+ 簡単なテストとして、提示されているコードをセル範囲変えて、
11
+ 1848x1200 の画像(PNGで5.02M)で50回ループ実行させて、Excelの使用メモリを見てみました。
12
+ ・Exportあり 41.6M⇒324.6M
13
+ ・Exportなし 46.7M⇒72.4M(実行後)⇒43.2M(しばらく放置)
14
+ Exportを実行する度に、リニアにメモリ使用量が増えているようです。
15
+ 別の方法で画像を出力できないか検討した方が良いかもしれません。