こんにちは。永野と申します。普段はWebの制作で何とか食べる人です。
業務でexcelをよく使うので、マクロに登録しているショートカットキーなどを紹介します。
VBAでのショートカットキー登録方法
マクロ使っている方はご存じと思いますが、マクロのメニューには標準でショートカットキーの登録項目があります
マクロを使うだけならこちらで十分とも思いますが、
- 一覧性がないので、たくさん登録していると分からなくなる&確認が面倒
- F1~F12や方向キーなどは登録できない
- Ctrlを外したショートカットキーの登録はできない
など、不便なところもちらほらあります。
VBAを使えるなら、Application.OnKey を使って登録していったほうが
上記の欠点は解消されて便利です。
Application.OnKey
例えば値貼り付けのShift + ctrl + vで登録したければこんな風になります。
Sub 値貼り付け()
'
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=True, Transpose:=False
End Sub
(別のsubプロ―ジャに記録)
Application.OnKey "+^v", "値貼り付け"
+はshift,^はctrl、そしてプロ―ジャ名(ここでは「値貼り付け」)を書けば、登録したショートカットキーで割り当てれたマクロが実行されます。
またF1でヘルプが起動しますが、もし不要なら
Application.OnKey "{F1}", ""
と書けば、F1を押してもヘルプが出てこなくなります。
OnKey メソッドの詳細はこちらに書かれています。
●OnKey メソッド (Excel) - Office VBA リファレンス
https://docs.microsoft.com/ja-jp/office/vba/api/excel.application.onkey
ただし、これらApplication.OnKeyで登録したショートカットキーを有効にするにはプロ―ジャを一度実行しなければなりません。
そのため、Workbook_OpenやAuto_Openでファイルが開いたとき、もしくはエクセルが開いたときにまとめて実行させるのがいいと思います。
Private Sub Auto_Open()
Application.OnKey "+^f", "式貼り付け"
Application.OnKey "+^v", "値貼り付け"
Application.OnKey "+^d", "シート削除"
Application.OnKey "+^t", "データ貼り付け"
Application.OnKey "+^g", "値入れ替え貼り付け"
End Sub
マクロ紹介
ついでなので、私がショートカット登録したり、作成したマクロも軽く紹介
(随時追加…の予定ですが、おまけなのであしからず)
式貼り付け
Sub 式を貼り付け()
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=True, Transpose:=False
End Sub
現在のシート削除
Sub シート削除()
ActiveWindow.SelectedSheets.Delete
End Sub
データ貼り付け
データをサイトからコピーした時、HTMLのフォーマットなどは反映せずに貼り付けます
Sub データ貼り付け()
ActiveSheet.PasteSpecial Format:="HTML", link:=False, DisplayAsIcon:= _
False, NoHTMLFormatting:=True
End Sub
参考・関連リンク
https://docs.microsoft.com/ja-jp/office/vba/api/excel.application.onkey
https://qiita.com/okunokento/items/788c44bd2cc3186f1845
https://excel-ubara.com/excelvba1/EXCELVBA428.html