移転しました。新しいエントリはこちらの「今日勉強したことをつらつらと」へ

Excelマクロの使い方

 詳細設計書が滅亡しない理由 - kagamihogeの日記
 詳細設計書がなくならない理由なんて単純。工数を水増ししたいからに決まってるじゃない。
 元請けSIの仕事は下請けに丸投げしたときの受注金額の半分くらいをピンハネすること。無駄なドキュメントやらなんやらで見積金額が上がれば上がるほど儲かる。実際にノウハウを持ってるのは下請けで、下請けが直接取ればいいじゃんと思うけど、規模がでかくなると、下請けじゃしくじったときに補償できない。だから大手SIが仕事を取りつづけるし、見積の何割かを占める詳細設計書もなくならない。
 そんな下請けをやってると、元請けがセキュリティがどうたらこうたら言ってきてツールの持ち込みもできずに、Officeがインストールされてるだけの、外部とまったく繋がらないPCを渡されて方眼紙Excelの詳細設計書を書かされることがある。
 前書きが長くなったけど、そんなときに使えるExcelマクロの使い方。
 Excelマクロの関数は、引数がなければ[ツール]→[マクロ]→[プロパティ]でショートカットキーを割り当てられる。このショートカットキー、ExcelのMDIの親ウィンドウに対して割り当てられる。つまり、裏でマクロを登録したブックを開いておけば、別のブックでマクロが動く。何も書かずにCells(1,1)とかで指定すれば、アクティブウィンドウのアクティブシートに対して動く。
 それで何ができるかっていうと、方眼紙Excelにありがちな結合セルをコピペしようと思ったら結合数がシートによって違うから貼り付けられないとか(DataObject.getFromClipbord getTextして、value書き換え)、アドオンなしで正規表現で置換するとか(ダイアログで検索文字列と置換文字列入力させて、そのままregExp)、フローに描画オブジェクト使ってて検索、置換できないところを検索するとか(ActiveSheet.DrawingObjectsからTextを探す)とか、方眼紙ExcelのイライラポイントがExcelだけで解決できる。
 背景の色変えるにはどうすればいいんだっけ?とか、使い方に困ったらマクロの記録で操作すると、サンプルコードが出来てるから調べ物ができない環境でも安心。