Excelのオートカルク(数値の入ったセルを選択した時にステータスバーに表示される合計値)の数値をコピーする方法の覚書。Excel 2013(Windows)だけど、たぶん他のバージョンでも同じような方法でできるのではないかと思います。
1. 「開発」タブからVisual Basicをクリック。「開発」タブが無い場合は、上部のリボンのあたりを右クリックして、リボンのユーザー設定をクリック、メインタブというところの「開発」にチェックを入れる。
2. Visual Basicから「挿入>ユーザーフォーム」をクリック。
3. 「ツール>参照設定」をクリック。
4. 「参照可能なライブラリファイル」で「Mirosoft Forms 2.0 Object Library」にチェックが付いていることを確認。
5. 「挿入>標準モジュール」をクリック。
6. 表示されたウィンドウに以下のコードを貼り付ける。
Sub copysum() Dim a, c As Range Dim i As Long Dim myDO As New DataObject Set a = Selection.SpecialCells(xlCellTypeVisible) For Each c In a i = i + c.Value Next c myDO.SetText i myDO.PutInClipboard MsgBox (i & "をクリップボードにコピーしました。") End Sub
7. ファイル>Book1の上書き保存をクリック。
8. フォルダ「C:\Users\ユーザー名\AppData\Roaming\Microsoft\Excel\XLSTART\」にファイルの種類「Excelバイナリブック(*.xlsb)」で「Personal.xlsb」という名前で保存。
9. ExcelのPersonal.xlsbという名前のテーブルで、複数のセルに適当な数値を入れて選択して、「開発タブ>マクロ」をクリック、copysumというマクロが選択されているのを確認後、実行をクリックすると「◯をクリップボードにコピーしました」(◯は合計値)と表示される。
10. 「開発タブ>マクロ」をクリックした後、オプションをクリック。
11. ショートカットキーにカーソルを移動して、Shift+Cなどを押してショートカットキー(Ctrl+Shift+C)を設定して、OKをクリックする。
12. マクロウィンドウを閉じて、上書き保存してExcelを閉じる。
13. Excelを再起動すると先ほど作成したPERSONAL.xlsbが開くようになっている。
14. 表示タブでウィンドウ>表示しないをクリック。
15. Excelを終了しようとすると、「個人用マクロブックの変更を保存しますか?」というメッセージが出るので、保存をクリック。
16. もう一度Excelを起動する。
これで、複数セルを選択した場合の合計値(表示されているセルのみ)がショートカットキー(Ctrl+Shift+C)を押すことでクリップボードにコピーされるようになる。
ちなみに、以下のサイトを参考にしました。
【Excel】オートカルクの合計を取得するマクロを作ってみた! - とうすけろぐ : http://tosk.hatenablog.com/entry/2016/09/08/213502
セルの値だけクリップボードにコピーするマクロ - Qiita : https://qiita.com/tukiyo3/items/0d50f2834fb5098b4755