/note/social

地獄の社内SE

地獄の社内SEより。

社内SEになった。

仕事を辞めて主夫業に勤しんでいたら、知り合いから声がかかった。

1人で社内システムを作ってきたおじいさんがあと数年で定年になるから、

引き継げないかとのこと。

メインのシステムはベンダーに委託してて、そのおじいさんが作っているのは、

メインシステムのデータを加工して2次利用しているものがほとんどとのことだった。

社内SEはなんとなく楽そうなイメージがあったので、就職した。

言語はエクセルVBAとVB.NET 1.0。

中身を見るとどちらもかなりやばい。

VBA編

・ウォッチウインドウを知らないのか、変数はすべてセルに入れてる。

変数名はすべてRANGE("A1").valueみたいな感じで全く意味が分からない。

・処理遷移がおかしい。

セルに1を入れる。そのセルのchangeイベントで処理が動くとか。

SHIFT+F2が無力化されてる。

・なるべくワークシート関数で処理してる

データベースからとってきたデータを丸ごとワークシートにコピーして

if,vlookup,match関数を駆使して帳票にしたり、CSVにしてる。

データ100件制限があったり、1関数を直すときは100行コピーしないといけない。

画面中に埋め尽くされたワークシート関数をみて途方に暮れる。

・format関数を知らない。

8桁の日付をとりたいときyear、month、day関数がワークシートにあり、

その下の行で月の二けた判定、日の二けた判定のif関数で頭の0をつけ

3行目でconcatenateしている

・タイマー起動

毎朝100本ぐらいのマクロが動いてる。

タイマー起動なので、毎日セットしないといけない。(タスクスケジューラーを知らない)

がんがんエラーが発生するので、マクロ設定をエラー処理対象外のエラーで中断にしないと動かない。

・遅い

textboxのchangeイベントでDBからのデータ取得処理を入れているので、データが多くなると1文字打つごとに数分待つ状態。

exitイベントを知らないらしい

DBの更新処理でもテーブル全件とってきて、ループしながらキーが一致するのを探して更新。

そんなつっこみどころしかないEXCELマクロが200本以上ある。

VB編

・.NET1.0

windows7や8に無理やり.netframework1.0を入れて動かしてる。

顧客のPCにも入れてる

・オブジェクト名は代えない

変えられることを知らないのかもしれない

textbox100とか存在してる。

EXCEL同様変数は隠しtextboxに入れてる。

・設定ファイルがおかしい

1.0なのでconfigがないのはしょうがないが、設定ファイルは固定パスのテキスト

行数で管理

・WAITがいっぱいある

試しに取ったら動かない

・DBを最後まで回すとき

例外が発生するまでまわす。

・変数や関数のスコープの管理

ない。基本グローバル。

・クラス

ない。

・ネスト

ない。

おじいさんが20年にわたって深夜残業や休日出勤を厭わず作ってきた、地獄の社内システムの担当になったらしい。

全角英数字がいい味出してる。