Excel VBA バージョンが違い移植に手間取りました。
ひとつはXPで動くExcel2002、もうひとつはwin11で動くExcel2007でした。目の前で使っているのは2007のVBAなので、久しぶりとはいえなんとかできました。
そのままで2002上で使ってみると動作エラーが起こり、イロイロ不都合でした。多くは書き直しました。
- 読み込み可能な行数が異なる:対象となるCSV行数が2002は65千行程度ということで、エラー処理も面倒なので、制限以下のCSVファイルにしてもらうことにしました。
- フォルダ位置が異なる
- マクロ許可のファイル拡張子が異なる
- 保存プロパティの書き方が異なる
- ソートの書き方が異なる
- グラフ描画の書き方が異なる:2002関係のグラフ描画VBA探したがうまくヒットせず、結局、そう手間もかからないことから、該当シート上で手作業でグラフ描画をすることにしました。
などが主な箇所でした。
2002上で同様操作を「記録マクロ」で試してみました。
どう解決するかネット上の情報を調べてみようと最初思いましたが、「記録マクロ」で同様動作をしてみて、記録されたスクリプトを援用しました。
一方、グラフ描画は面倒になり、結局、使用者が手作業で描画するという横着に落ち着きました。
HRC Data Logger
今回、CSVを取り込む対象は、HRC Data Logger (車種は不明)が書きだしたものだったかと思います。
項目数は多くないのですが、時間経過とともに行数が増える、というタイプのデータでした。走行時間中のいくつかの項目記録をするんでしょうね。CSVへはソフト中のファイル保存形式から選べば作成できるようです。
で、これがWindowsXPで使用するアプリでした。CSVファイルを使って自身で分析する人は、1台のXPバージョンのPC上のExcelで処理すれば行数制限に引っかかりやすくなりそうです。一方、記録媒体に書きだしWin11などのExcelで使おうとすると、2台のPCを使うか、バーチャル・マシンとしてつかうか、などの選択を迫られそうです。
VBA概略
- N万行のデータを、Data Loggerから読み込み、Excel2002上に展開
- スロットル開度10%区切りで別シートにコピペ
- 各シートごとに、エンジン回転数とLAF1(=爺不詳)のグラフ描画(散布図)を作成
- 保存
等との流れをExcel2007のVBAでつくりました。第3項のグラフ描画は2002でうまく動きませんでしたので、手作業で対応していただくことにしVBAから削除、ひとまず終了となりました。