おはようございます。ときしろです。
今日はプログラミングのお話をします。
私はITエンジニアなので現場でもプログラミングをするのですが、初心者にはExcelVBAをオススメします。
ExcelVBAをおすすめする理由
どの現場でも使える技術だからです。
Excelがパソコンに入っていない会社なんてそうそうありません。
当然プライベートでも使えます。
私もプライベートでも拾った画像をリネームしたり、各フォルダに振り分けたり、フォルダを作ったりって手作業だと面倒なのでExcelVBAで作ったツールでやってます。
ツールならワンクリックでおしまいですからね。
ちょうど良いファイル整理のフリーソフトが無かったので(私の画像整理方法に沿ったソフトが無いのは当然ですが)、自分で作った方が具合がいいんですよね。
ツールを作るのは時間かかりますが、作ったらその後はめちゃくちゃ楽になりますから。
「プログラミングを勉強したい」って人はExcelVBAが非常におすすめです。
(他の言語だと環境構築が面倒だったりします。VisualStudioインストールしたり、フレームワークやプラグインをインストールしたり、メンテナンスも面倒ですし。その代わり出来る事は増えますけど、会社によっては勝手にインストールするのは許可されてないケースがありますからね。サクラエディタだけで作る猛者もいますが、作ったら作ったで怒られるケースがありますし。)
ExcelVBAを勉強するにあたり、おすすめの本
大昔にコレの第1版で勉強してました。通勤電車の中で見てました。懐かしい。
中古なら1円とか95円で売ってます。
ExcelVBAなんて昔の知識でも最新の物を触れます。
そのぐらい変化がない言語なので新しい本を買う意味もないと思います。古い中古の本を買って読むと良いと思いますよ。
もしくはKindle Unlimitedで↓みたいな無料の本を読むと良いと思います。
(初心者が本を買わずに全てネットで~ってのはキツイと思います。初心者の場合「序章」とか「はじめに」が助かると思います)
ExcelVBAはプライベートでパソコンを使っているとか、仕事でパソコンを使っているって人には非常におすすめですよ。
今まで現場で作ってきたExcelVBAのツールとその思い出
勤怠表作成ツール
24時間365日のデータセンターで勤務してた時に作った物ですね。
当時のリーダーがシフトの勤怠表作るのが面倒って言ってたので、ワンクリックでおおよその勤怠表を出力する物を作成しました。頑張ったねぇ当時の私。
「ツールで出力→手で微調整→最終的な状態をチェックする」という物を作りました。
が、当時のリーダーがムカついたので消しました。懐かしい。
リーダー「え、手修正が必要なの?完璧な物が一発で出て来ないの?ツールの意味ないじゃん」
俺「完璧なのは無理ですね。文句言われるのは嫌なのでもう封印します」
(翌月)
リーダー「やっぱ使わせて」
俺「え、嫌ですよ。あのぐらい自分で作ってくださいよw」
懐かしいなぁー、あの人何やってるんだろう。
クリエイターはデリケートだから作った物へのダメ出しはあまりやらないようにしましょうねw
特に無料で依頼して作った物にケチを付けたらダメですw
これで手当とかが出てるなら話は別ですが、20代前半の小僧でしたしすぐに心は折れましたw
障害メールチェックツール
Outlookと連動させて、受信したサーバのアラートメール、WarningメールをExcelに転記。
その一覧を色分け、サーバ、障害ごとに振り分け。
既存の事象なら対応不要、新規の事象なら色を塗り「要対応」とするツール。
手作業だと1時間以上かかって漏れもあったみたいですが、ツールで5分になりました。
障害情報チェックツール
サーバにアクセスしてログファイルを取得。
内容をチェックして、アラート、WarningメッセージをExcelに転記。
↑のツールと似たようなものですが、どの現場でも重宝されます。
セキュリティパッチ最新情報取得ツール
NortonかApacheか忘れましたが、公式HPのセキュリティニュースを取得して、最新パッチ名とそれで直る障害を一覧化するツールを作りました。
Excelでブラウザの情報を取得するのは楽しかった思い出です。
DB状態チェックツール
Oracle、MySQL、Postgreにアクセスして状態を確認するツール。
おかしいデータ、不整合があった場合アラート。
不整合修正用のSQLを出力する機能も実装。
どこの現場でも役に立ちますよね。
高速化のコツはループを無くすことです。
範囲選択してまとめて貼り付けると早くなります。
案件の工数見積もりツール
サーバ台数やスペック、OS、SLAの情報、社内、社外、言語などを設定し「出力」で見積表を作成するツール。
こちらもざっくり出力でその後手修正ですが、その現場のリーダーにめちゃくちゃ喜ばれたツールです。
オペレータさんの手作業自動化ツールと、オペレータさんの末路
※これはツールというよりも、その後の話の方が重要です。
ある日、オペレータさんから「作業を自動化して欲しい」という依頼がありました。
オペレータさんは他部署からもらったデータを加工して、別部署にExcelの一覧表にして提出するって仕事があったんです。
Aチーム→オペレータさん→Bチームという仕事をしてたんですね。
で、オペレータさんから「この作業を自動化してくれませんか」と言われたので作りました。
(もともとの作業が手順化されてなくて、オペレータさんごとにやり方が違ったので大変でしたが)
これにより、オペレータさん達が毎日3時間かかってた仕事が2分で終わるようになりました。
オペレータさんは日々の大変な作業が無くなり、非常に平和になったのですが、
後日、暇な時間が増えたオペレータさん達は仕事中におしゃべりが止まらなくなりました。
他のチームからクレームが上がるレベルでず~っとおしゃべりしていました。
その結果、オペレータさんのうち数名が契約解除されました。
「暇になったんだし、しゃべってるだけならもういらないよね」ということで。
実際に、オペレータさん達は誰も空いた時間に勉強もしないし、仕事の前倒しもしなかったですからね。ずっと遊んでました。
「プログラミングを勉強したら便利ですよ」「空いた時間に勉強しましょう」とは言いましたが、誰一人勉強はしませんでした。むしろ煙たがれました。もう用済みと言わんばかりにw
Fate/Zeroの征服王イスカンダルは言いました。
イスカンダル「ただ救われただけの連中がどういう末路をたどったか、それを知らぬ貴様ではなかろう。貴様は臣下を救うばかりで、導くことをしなかった」と。
簡単に自動化しすぎたり、楽な環境にしすぎるとその人達はダメになるんですね。
今だったらオペレータさん達の中でやる気のある誰かに作ってもらうかなーと思います。教えたりお手伝いはするので。
そうじゃないとその人たちを逆に苦しめることになると分かりました。
育成論の中には「魚を与えるのではなく、魚の獲り方を教えるんだ」と言いますしね。
逆に甘い誘いとかには気をつけないといけませんね。
「無料でやってあげるよー」とかは自分でも裏を取らないといけませんね。危険危険。
以上です。
他にも何十って作ってきましたが、とりあえずこんな感じです。
ExcelVBAは便利で良いですよね。本当にどの現場でも使えるってのが最高に便利です。
コメント