急ぎでVBAツールを依頼された。
急ぎといいつつ、テストデータが手に入るのは、金曜~月曜なので、しらばく手製データで動作確認。
2種類の入力ファイルがあるんだが、1個が順編成ファイル、1個がcsvファイル。
cvsは普通に読めるのだが、問題は順編成ファイル。
特定バイトで1件になるので、バイト指定でデータを取得しつつ、各項目をバイト指定で特定する必要あり。
InputBとかMidBとか、バイト指定の関数あるし、問題ねぇだろ、と軽く考えてたら、全く使えないクソ関数だった。
取得するバイト長を指定する引数は、各種サイトではバイト数と書いてあるが、実は、1文字を2バイトとする数値、になるらしい。
は?
いや、意味分からん。
文字数指定と同じやん。
文字数指定なら、InputとMidがあるだろ。
馬鹿なの?
常々、VBAは、クソ言語だと思って来たが、クソ以下の言語だった。
結局、ファイルから読み込んだデータは、バイト配列に格納。
必要な箇所は、配列インデックスで指定して、別配列にして、それを文字列に変換。
うげぇ、めんどくさ。
今は手製データで数件なので問題ないが、本番はサイズでかいので、処理速度が気になる。
めんどくさいから、順編成ファイルとか滅びろ。
csvにしとけ。