2017-06-29

「夢中」で書かれたVBA

退職者が「会社で何らかの『システム』を入れないから、これで作るしかない」といってVBAで作っていた。

一時は社内規定残業上限に達するほどに、「夢中」で作っていた。

が、退職後3ヶ月、あるマクロの書き出すデータに致命的な問題が判明し、私が一部、使用停止を宣言した。

基幹系へ投入するデータ特定条件で確実に狂うのである、それも何ヶ月にも渡って誰も気づかなかった。

当該マクロでのデータ処理を禁止し、1年と少しぐらい、現業部が手作業エクセルデータ作成していたと思う。

ろくに解説サイトも見ないでVBEコードをこねくり回して作っていたのだと思う。

しかすると、解説サイト書籍の内容が理解できなかったのではないか、とすら思う。

Dim da as String
da = "データ"
Dim after as String
after = "修正済"

'----------------------------------------------
With ThisWorkbook.Worksheets(after)
  .Cells(i, 1).Value = ThisWorkbook.Worksheets(da).Cells(i, 1).Value
  .Cells(i, 2).Value = ThisWorkbook.Worksheets(da).Cells(i, 2).Value
  .Cells(i, 3).Value = ThisWorkbook.Worksheets(da).Cells(i, 3).Value
  .Cells(i, 4).Value = ThisWorkbook.Worksheets(da).Cells(i, 4).Value
End with

シートをまたいで、ただ値をコピーして集計していく程度の内容であるが、Workbook/Worksheetの呼出理解できていないのだと思う。

また、変数はワークシート名を格納する程度にしか使っていない。

シートの見出しも「修正決定○○数」という、一体、何の数量なのか理解に苦しむ見出しである

使える制御構文はFor Nextだけらしく、Do WhileやFor Eachもなく、果てはLike構文すら見たことがない。

文字列の判定は全てInstr関数でやっている。

行番号をString型に格納している etc...

その人が退職して直ぐ後のミーティングで、自部署担当役員レジュメにこう書いていた

努力は夢中に勝てない」

退職者も「夢中」で書いていたのだろうか。

最終的には主に上長担当役員に嫌気して辞めていったのだが。

  • マジでVBAとかどうでもいいから。 ソースまで載せなくていいよ。誰も興味ないから。

  • 「会社で何らかの『システム』を入れないから、これで作るしかない」 こういう事情で本来業務の片手間にこしらえる小道具って、そんなものだと思うよ。 腰を据えて言語を学ぶ時間...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん