ヘリコプター着陸サイト用の衛星画像をダウンロードし、サイトコードのタブに配置するExcelシートがあります。正確には166個あり、それぞれに2つの静的マップ画像があり、合計332個の画像があり、いくつかの方法でそれらを操作する必要があります。画像を操作する際にメモリを減らすExcel VBA
私はそれらをダウンロードして配置する問題はありませんが、私がそれらを操作しているときに私はメモリが足りなくなります。操作は、スクリーン上に表示されているので、地図を見ているときに私たちのパイロットが夜間によく見えるよう助けることです。
私は次のコードを入力して、約100枚まで動作し、32ビットExcelに制限されているためにRAMが不足しています。使用されているメモリの量を減らす方法はありますか?
Public Sub SwitchtoNight()
Dim oWS As Worksheet
For i = 5 To ThisWorkbook.Sheets.Count
Set oWS = ThisWorkbook.Sheets(i)
With oWS
.Shapes("GoogleMap1").Fill.PictureEffects.Insert(msoEffectSaturation).EffectParameters(1).Value = 0 'Saturation
.Shapes("GoogleMap1").Fill.PictureEffects.Insert(msoEffectBrightnessContrast).EffectParameters(1).Value = -0.35 'Brightness
.Shapes("GoogleMap1").Fill.PictureEffects.Insert(msoEffectBrightnessContrast).EffectParameters(2).Value = 0.75 'Contrast
.Shapes("GoogleMap2").Fill.PictureEffects.Insert(msoEffectSaturation).EffectParameters(1).Value = 0 'Saturation
.Shapes("GoogleMap2").Fill.PictureEffects.Insert(msoEffectBrightnessContrast).EffectParameters(2).Value = 0.35 'Contrast
End With
Set oWS = Nothing
Next i
End Sub
画像を約400ピクセルX 400ピクセル、ここで例Iのように画像をダウンロードする
Public Sub SwitchtoNight()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
Dim oWS As Worksheet
For i = 5 To ThisWorkbook.Sheets.Count
Set oWS = ThisWorkbook.Sheets(i)
oWS.DisplayPageBreaks = False
With oWS
.Shapes("GoogleMap1").Fill.PictureEffects.Insert(msoEffectSaturation).EffectParameters(1).Value = 0: .Shapes("GoogleMap1").Fill.PictureEffects.Insert(msoEffectBrightnessContrast).EffectParameters(1).Value = -0.35: .Shapes("GoogleMap1").Fill.PictureEffects.Insert(msoEffectBrightnessContrast).EffectParameters(2).Value = 0.75
.Shapes("GoogleMap2").Fill.PictureEffects.Insert(msoEffectSaturation).EffectParameters(1).Value = 0: .Shapes("GoogleMap2").Fill.PictureEffects.Insert(msoEffectBrightnessContrast).EffectParameters(2).Value = 0.35
End With
Set oWS = Nothing
Next I
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
(MBまたは解像度)画像がどのくらいありますか?あなたはサンプル画像へのリンクを投稿できますか? (それが問題なら実際のサイトである必要はありません)コード全体ですか? (または、偶然、Excelやその他のアプリケーションをプログラムで開く/閉じる/操作するのですか?) – ashleedawg
サンプルイメージを追加しました。322イメージのブック全体が20MBにすぎないため、大きなイメージはありません。画像は400 x 400 –
私はまた、どのプログラムも操作していません。 Excelシートは新しく開かれ、このコードを実行する前に70MBのRAMしか使用していません。 –