Line Buffer Overflow…

書くことが多過ぎるとき、バッファーとしてこちらに書きます。不定期更新です。

いくつかの挑戦と時間との挑戦…

業務後に始めた「作り物」は、Excelのファイルです。

VBA(マクロ)を、ふんだんに使いますよ♪

 

今回は、成績の集計。

進捗ごとに、係数と掛け合わせて、ポイント化して集計します。

 

手法自体は、今まで培ったもので、十分出来ますが、成績ですから、利害に直結します。

もちろん、上司の指示の下で制作し、最終的な調整は、上司が自分の責任で、設定できるように作るんですが、やっぱり緊張しますね。

迂闊なものは、作れないです。

 

そんな中、上司のオーダーは、順位を使ったランキング。

最初は、手動で順位も算出していたんですが、どうせなら、既存のピボットテーブル上で実現した方が、フィルタにも対応できます。

 

こういう時は…

「マクロ記録」!

やりたいことを、そっくりそのままVBA言語にする機能が、あるんですよ。

 

この機能、マクロの初心者向けの機能として、よく紹介されますが、とんでもない。

入力規則とか、条件付き書式とか、ピボットテーブルとか、複雑な機能こそ、マクロ記録の威力が、発揮されるんですよ。

 

さて、残りは20分ってところ。

ここで、こんなことを思いついてしまった…

 

実は、データを整理して、必要な計算式などを施して、ピボットテーブルを作ったシートを、新規ブックとして書き出していたんです。

※ 切り出すのは簡単ですが、ピボットテーブルの設定を変えないといけないので、それなりに難しいです。

 

これを、「イベントを使って、動的に動かそう!」

要は、フィルタを動かした時に、1位を表示する内容を、動的に書き換えようと!

 

これの実現には、切り出すファイルにも、マクロが必要になります。

実は、マクロ付きのファイルの、マクロからの新規作成は、やったことがなくて。

今回はイベントで、シートにマクロを書き込むので、シートをコピーすれば、マクロも移ってくれます。

でも、

「引数FileFormatに、“xlOpenXMLWorkbookMacroEnabled”を設定する」

必要がありましたね。

 

もう残り時間わずか!

最後のデバッグが終わったのは、薬局に行くにはギリギリ!!

 

初めての挑戦が、幾つかありましたが…

直しきる自信は、ありましたよ!

 

刻々と迫る時間に追われて、スリル満点!!でしたけどね。

自信満々の割りには…