スポンサーリンク
Excelでは、足し算については答えを自動表示してくれる機能がある。
その機能を知らなければ給料泥棒だが、今回の記事ではそれを更に拡張するExcel改造技まで紹介し、数字の集計などにおいて反則的な効率化を可能にしていきたいと思う。
Excelのステータスバーに合計値など表示する
Excelでは、数値の入っているセルをマウスでドラッグしていくと(別にキーボードで選んでもいいけど)、その合計値が一番下のステータスバーという部分に表示される。
この機能は、合計値だけを素早く知りたいときに重宝する。必ず知っておこう。
これを知らずに、ただササっと合計を知りたいだけなのにイチイチSUM関数を使ったり、電卓を叩いたりなんてアホなことをしないように。
経理でも、なかなかExcelを使いたがらず電卓依存の強い人がいてそれを一概に批判できないが、流石にこの合計値表示を知らなかったら許されない。
ちなみにこの機能では、オートフィルタによるフィルタリングとかセルの非表示とかしてて、途中に隠れているセルがあったりした場合も、それは除外して目に見えているセルだけの合計を示してくれる。
そして、このステータスバーを右クリックすれば、合計値以外にも最大値・最小値・平均値・データの個数など表示させたい項目を選びカスタマイズすることができる。
まあ私も合計値以外にあまり用はないのだが、最大値とか平均値なんかは時々必要になるので、一応オンにしてたりする。
他にも色々な機能をオン・オフできるけど、どれもデフォルトのまま特にイジる必要もないだろう。
ちょっと機能をマクロで拡張するよ
さて、この合計値表示機能は、便利な事は間違いないのだけれど、実際に仕事で使っているとどうしても不満が出てくる。
「ただ合計値を見たいだけじゃないんだよ。その合計値を別のセルとかにさっと貼り付けたいんだよ!」 という不満だ。
やっぱり求めた数値は、他の場所で使ってなんぼでしょう。
そこで私は、下記のようなマクロを作って、個人用マクロブックに組み込んで使っている。
これにより、選択されたセル範囲の合計値をただ表示するだけではなく、貼り付けられるようにしておける。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Sub put_Clipboard(var As Variant) '値をクリップボードに格納 Dim CB As New DataObject With CB .SetText var '変数のデータをDataObjectに格納する .PutInClipboard 'DataObjectのデータをクリップボードに格納する End With End Sub Sub copyTotalValue() '合計値をクリップボードへ Dim var As Variant Dim rng As Range Set rng = Selection.SpecialCells(xlCellTypeVisible)'可視セル範囲のみ対象 var = WorksheetFunction.Sum(rng)'合計値 Call put_Clipboard(var)'値をクリップボードに格納 End Sub |
上記のコードを個人用マクロブックにコピペして、copyTotalValue というマクロを起動すれば良い。
1つ注意として、このマクロを実行する前には、参照設定で「Microsoft Forms 2.0 Object Library」というものを有効にしておかないといけない。
それについては、個人用マクロブックの初期設定の記事で述べている。
前に書いた、Excelのコピー機能を普通のコピー機能に近づけるマクロとほとんど同じです。
知識がある人から見れば何これショボいというレベルのマクロだけど、割と使える場面はあると思う。
スポンサーリンク