実現したいこと
マクロを使用するxlsファイルの軽量化
前提
マクロを使用するごとに、増えるデータ量のわりにファイル容量が大きくなり、動きが遅くなっています。
重たくなるファイルはxlsファイルで、他のCSVファイルのデータを読込し、数値計算(読み込んだCSVデータの単価と数量をかけ、金額を出力)や、
読み込んだデータの中に、xlsファイル内別シートのマスタと同一データがあれば、マスタデータを参照し書き換えるなどの処理をするVBAを使っています。
xlsmファイルにしない理由としては、連携しているAccessファイルがあり、xlsm形式にするとAccessがなぜか動作しなくなるため(ここも問題なのですがひとまずxlsファイルで継続して使用することになり)、xlsファイルを使い続けています。
発生している問題・エラーメッセージ
マクロ実行後のファイル容量の増加
VBAの場合は、設定によりますが、コードの中間言語が保存され、修正されたあとに再び上書きされずに保存されるので、サイズが膨らんでいく、と別サイトでみたのですが、具体的な解決策がわかりません。
該当のソースコード
VBA
1 2'読込した出荷シートにCSVファイルをインポートする 3Sub 出庫データ読込() 4 Dim FilePath As String 5 Dim lastRow As Integer 6 Dim lastcol As Long 7 Dim rng As Range 8' Dim Sheets("読込した出庫") As Worksheet 9 Dim cell As Range 10' Set Sheets("読込した出庫") = Sheets("読込した出庫") 11 12 Sheets("読込した出庫").Cells.Clear 13 FilePath = Application.GetOpenFilename("CSV Files (*.csv), *.csv", 1, "Select the CSV file", "Open", False) 14 If FilePath = "False" Then Exit Sub 15 With Sheets("読込した出庫").QueryTables.Add(Connection:="TEXT;" & FilePath, Destination:=Sheets("読込した出庫").Range("a1")) 16 .TextFileParseType = xlDelimited 17 .TextFileCommaDelimiter = True 18 .TextFilePlatform = 932 19 .Refresh 20 End With 21 22 'クエリで読み込んだ接続を削除する 23 Dim conn As WorkbookConnection 24 For Each conn In ActiveWorkbook.Connections 25 conn.Delete 26 Next conn 27 28End Sub 29
試したこと
ここに問題に対して試したことを記載してください。
Ctrl + END などで、使用する箇所以上にスペースがとっていないか確認
不要なオブジェクトがないか確認。いずれもなし。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答2件
あなたの回答
tips
プレビュー