読者です 読者をやめる 読者になる 読者になる

エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

JavaエンジニアがVBA開発で思うこと

プログラミング 勉強 生産性

背景

最初は、Javaの開発要因として入ったけど、諸々の事情により全然Javaと関係ない現場に。。。
同然、開発メンバはJava開発要因として雇ったのは知っているので、無茶ぶりはない。
そして、ドキュメントばかり読んでいるわけにもいかないので、ちょっとしたツールの改修を依頼され、VBAを使う羽目に。。。

VBA

VBAの経験

無いわけではない。
日本だから、仕様書はMS OfficeExcel使うことが多い。
業務効率化のためにVBAでちょっとしたものを書くことは、たまにする。

ソースを見て愕然。。。

う~ん。。。。
ツールだからなのだろうか?
もの凄く昔に見たようなコードがいっぱい。。。

気になったこと

  • 変数が大文字始まり
  • メンバ変数が多用されている
  • バッファリングする意味は?
  • 構造体はリストに入れられない?!
  • 末尾に「;」が不要

変数が大文字始まり

自分は、個人で開発していた時は、Javaの暗黙ルールに則っていたけど、VBAでは大文字始まりが一般的なのだな。。。
だた、初見で見た時に、これは変数なのか、クラスなのか迷う。
まぁ、定義見れば一発で分かるんですけど、いちいち定義見ないといけないのはナンセンスだと思いました。

メンバ変数が多用されている

自分は、メンバ変数は見つけ次第殺す方ですが、あまりにも多くて諦めた。。。。
メンバ変数があちこちで値を変えて、それがいろんなタイミングで影響しあってスパゲッティになっていた。
「なるほど、メンバ変数があることで、こうやってスパゲッティができるのだな」と改めて学習できた。

バッファリングする意味は?

Excelに出力する値を貯めこんでいるのだが、何でだろう?
値が確定したら出力すべきだと思うのだが。

構造体はリストに入れられない?!

なんか入れられそうな気がしていたんだけど、入れられなかった。
代わりにクラスで対応できたから良いけど、クラスはできるけど構造体では無理とか、理屈がわかりにくい

末尾に「;」が不要

確かに楽だ。
若干違和感があるけど。

VBエディタが。。。。

Eclipseに慣れすぎているせいか、ソースを読む際に、ついついEclipseのショートカットを使ってしまう。。。
あと、リファクタリングが安全にできないことが辛すぎる!
今までそれほど意識していなかったけど、処理を書いている途中で、変数の命名がふさわしくないと思うことが結構ある。
その際に変数名を変えるのが非常に辛い。
コンパイルして探す、実行時に気づくでしか対応漏れを見つけられないので、非常に辛い。
Eclipseは、優れた開発環境なのだと改めて実感した。

VisualBasic.NETの経験が役に立った

参照設定の概念とか知っているおかげで、苦労は少なかった気がする。

感想

言語的な仕様で、可読性は左右されるものだと感じた。
いろいろディスったけど、やってはマズイことを、再度確認できたかなと思う

まだ、当分改修が続きそうなのが辛い。。。

Javaに戻った時に変な癖が出ないようにしないと!