業務後に始めた「作り物」は、Excelのファイルです。
VBA(マクロ)を、ふんだんに使いますよ♪
今回は、成績の集計。
進捗ごとに、係数と掛け合わせて、ポイント化して集計します。
手法自体は、今まで培ったもので、十分出来ますが、成績ですから、利害に直結します。
もちろん、上司の指示の下で制作し、最終的な調整は、上司が自分の責任で、設定できるように作るんですが、やっぱり緊張しますね。
迂闊なものは、作れないです。
そんな中、上司のオーダーは、順位を使ったランキング。
最初は、手動で順位も算出していたんですが、どうせなら、既存のピボットテーブル上で実現した方が、フィルタにも対応できます。
こういう時は…
「マクロ記録」!
やりたいことを、そっくりそのままVBA言語にする機能が、あるんですよ。
この機能、マクロの初心者向けの機能として、よく紹介されますが、とんでもない。
入力規則とか、条件付き書式とか、ピボットテーブルとか、複雑な機能こそ、マクロ記録の威力が、発揮されるんですよ。
さて、残りは20分ってところ。
ここで、こんなことを思いついてしまった…
実は、データを整理して、必要な計算式などを施して、ピボットテーブルを作ったシートを、新規ブックとして書き出していたんです。
※ 切り出すのは簡単ですが、ピボットテーブルの設定を変えないといけないので、それなりに難しいです。
これを、「イベントを使って、動的に動かそう!」
要は、フィルタを動かした時に、1位を表示する内容を、動的に書き換えようと!
これの実現には、切り出すファイルにも、マクロが必要になります。
実は、マクロ付きのファイルの、マクロからの新規作成は、やったことがなくて。
今回はイベントで、シートにマクロを書き込むので、シートをコピーすれば、マクロも移ってくれます。
でも、
「引数FileFormatに、“xlOpenXMLWorkbookMacroEnabled”を設定する」
必要がありましたね。
もう残り時間わずか!
最後のデバッグが終わったのは、薬局に行くにはギリギリ!!
初めての挑戦が、幾つかありましたが…
直しきる自信は、ありましたよ!
刻々と迫る時間に追われて、スリル満点!!でしたけどね。
自信満々の割りには…