自滅への近道sheet5:ルール
「俺、分かったかも知れません」
胸元で挙手をしつつ、指名される前に薔薇筆が話し始めた。
「マクロを実行したかどうかは、そのマクロ内にユーザーネームを取得するよう書き足すだけでいいのでは?」
「そうか、そうすればマクロを実行したか分りますね」
大塚先生は解決の兆しが見えて笑みを浮かべた。
「エル?浮かない顔だな。それじゃ駄目なのか?」
アキラがエルの表情を見て取った。
「いえ、薔薇筆さんのプランが最も簡単で現実的だと思う。ただ…」
「ただ?」
「これを作った人はマクロの中に人名や加算の数字を入れなかったでしょ?私はそのルールでやりたいの」
そこに居た半数は呆れ、残りの半数は意味が分からないといった顔をした。
ルールって何の事だろうと。
「別のマクロを作るので、カラオケでもしててください」
そう言うとエルはカラオケモニターとのミラーリングを解除し、魔道具を持って店の奥へ消えていった。
エルが戻って来たのは川口がカラオケの二曲目を歌い終わる頃だった。
「な、言った通りだろ。三曲目は入れる必要ないって」
川口が幼馴染の大塚に言った。
エルはモニターをカラオケからミラーリングに切り替えた。
「大塚先生、このマクロを大学のファイルにコピー出来ますか?やり方は説明します」
大塚先生は背広の胸ポケットから手帳を取り戻すとメモの準備をした。
エルは説明を終えると、マクロをコピーしたUSBメモリを大塚先生に渡した。
「難しい様でしたら、さっき薔薇筆さんが言ってたやり方で結構です。得られる結果は同じです」
「多分出来ると思います。ただエルさんがこっちの…失礼を承知で言わせていただくと、回りくどいやり方をされるのが今ひとつ理解出来ないのですが…」
大塚先生は正直な胸の内を明かした。
「こういう事じゃねぇかな。エル、違ってたら言ってくれ」
アキラがエルに代わって話し始める。
「学生の成績を改竄するマクロ、もちろんこれが"悪"なのは間違いない。ただ、これは一つの完成されたマクロであってそれに第三者が乗っかる形で機能を付け足す行為に何となく嫌悪感があるんじゃないか?ちょうど学生の評価に後から点数付け足す行為がルール違反なのと同様に…」
アキラの説明に頷くエル。
「なるほど…」
薔薇筆が続ける。
「個人的には悪人にそこまで義理立て(?)する必要も無いように思いますが、エルさんのお気持ちも理解出来ます。後は大塚先生がご判断されるって事で良いんじゃないでしょうか」
(本編と挙動は異なりますが)Excelでキーボードショートカットの使用回数をカウントするマクロを紹介します。以下の手順に従ってください。以下の例では、Ctrl+CとCtrl+Vのショートカットキーの使用回数をカウントする方法を示します。
手順
1.VBAエディタを開く
・Excelを開き、Alt + F11キーを押してVBAエディタを開きます。
2.新しいモジュールを挿入
・VBAエディタで、挿入 > モジュールを選択して新しいモジュールを挿入します。
3.コードを入力
・以下のコードを新しいモジュールにコピー&ペーストします:
-------------------------------------------------
Dim CtrlCCount As Long
Dim CtrlVCount As Long
Sub CountCtrlC()
CtrlCCount = CtrlCCount + 1
MsgBox "Ctrl+C has been used " & CtrlCCount & " times."
End Sub
Sub CountCtrlV()
CtrlVCount = CtrlVCount + 1
MsgBox "Ctrl+V has been used " & CtrlVCount & " times."
End Sub
Sub SetShortcuts()
Application.OnKey "^c", "CountCtrlC"
Application.OnKey "^v", "CountCtrlV"
End Sub
Sub ResetShortcuts()
Application.OnKey "^c"
Application.OnKey "^v"
End Sub
-------------------------------------------------
4.ショートカットを有効にする
・Excelのワークブックが開かれたときにショートカットを有効にするために、ThisWorkbookオブジェクトに以下のコードを追加します:
-------------------------------------------------
Private Sub Workbook_Open()
SetShortcuts
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ResetShortcuts
End Sub
-------------------------------------------------
説明
・CountCtrlC: Ctrl+Cが押されたときに呼び出され、カウントを増やします。
・CountCtrlV: Ctrl+Vが押されたときに呼び出され、カウントを増やします。
・SetShortcuts: Ctrl+CとCtrl+Vのショートカットキーをカスタムマクロに割り当てます。
・ResetShortcuts: ショートカットキーの割り当てをリセットします。
・Workbook_Open: ワークブックが開かれたときにショートカットキーを設定します。
・Workbook_BeforeClose: ワークブックが閉じられる前にショートカットキーをリセットします。
このマクロを実行すると、Ctrl+CとCtrl+Vの使用回数がカウントされ、使用するたびにメッセージボックスで通知されます。