ExcelVBAで構造体を使うと便利なこともある
こんにちは!なるーらぼです。最近、ものすごくひさしぶりにExcelVBAをほんの少しだけ書いています。なにゆえかと言いますと、バイナリファイルの読み書きをすることになったからです。
このモダンな令和の時代に固定長バイナリファイルを扱う必然性は無いことはずですので、なつかしい記憶をたどりながら取り組んでおります。
VBAの個人的に気に入っていることとして、構造体があります。ふだんマクロをつくっていらっしゃる方も使ったことないと思います。遺跡、まさにレガシーですね。構造体を使うとVBAではバイナリファイルからデータ構造を直接メモリに読み込むことができるのですよ。これが便利なのです。
遠いむかしにVC++などC言語系のものでつくられたアプリとのやりとりのために用意されたこの機能は、いまでも健在なようです。しかし、ひさしぶりに使ってみると20MB強のファイルでも速くないな…
そういえば、まったく同じではありませんが、Pythonにもstructというクラスがありますね。時折つかうことがあります。これまた古いファイルを扱うときです。
バイナリファイルを直接つかうことは現代では少なくなったかなと思いますが、みなさまの大好きなExcelVBAにもそんな機能があります。うまく活用できれば、なかなか便利なモノですよ。