お知らせ
最終的にマウスの進む・戻るボタンにシート切り替えを割り当てるのが
私に最も最適な設定でした。詳細は下記を参照似ていただきたく。
http://exsoul.hatenablog.com/entry/2015/03/11/002825
背景
エクセルのシート切り替えのショートカットキーはCtrl+PgUp or PgDn ですが、
ノートPCだったりするとFnキー押さないといけなかったり、そもそもキー配置的に押しにくいです(個人的感想)
なので、簡単に押せるショートカットにしたいと思い経ちました。
環境
Windows7
Excel2010
想定していた解決案
- ショートカットキーの変更(最もシンプル)
- 任意のソフトにおけるショートカットキーバインドの変更
- エクセルマクロ(最終手段)
結論
エクセルマクロで実現しました。
ただし、実際に編集、作成するエクセルにマクロを組み込むことは可能な限り避けたかったので、
個人用マクロブックというものを使用しました。
個人用マクロブックとは
自身の環境でエクセルを作成・編集する場合のみに適用されるマクロを記述するため専用の
エクセルブックのことです。
これを使用することで、たとえ通常マクロ実行不可のxlsx拡張子のエクセルでもマクロが実行できます。
(セキュリティの設定によるかもしれません)
実施した内容
- エクセルを起動
- リボンのウインドウタブ > 再表示 で PERSONAL.XLSB を選択
- 開発タブよりVB編集画面を開き、上記のブックに標準モジュールを追加
- 標準モジュールに以下を追記
Sub NextSheetActive()
Set SH = ActiveSheet
On Error Resume Next
''右のシートへ。末尾なら最初に
If ActiveSheet.Name = Sheets(Sheets.Count).Name Then
Sheets(1).Activate
Else
''非表示のシートは飛ばす
Do While SH.Next.Visible <> xlSheetVisible
If Err <> 0 Then Exit Do
Set SH = SH.Next
Loop
If SH.Next.Visible <> xlSheetVisible And SH.Next.Name = Sheets(Sheets.Count).Name Then
Sheets(1).Activate
Else
SH.Next.Activate
End If
On Error GoTo 0
End If
End Sub
Sub PreviousSheetActive()
Set SH = ActiveSheet
On Error Resume Next
''左のシートへ。最初なら末尾に
If ActiveSheet.Name = Sheets(1).Name Then
Sheets(Sheets.Count).Activate
Else
''非表示のシートは飛ばす
Do While SH.Previous.Visible <> xlSheetVisible
If Err <> 0 Then Exit Do
Set SH = SH.Previous
Loop
If SH.Previous.Visible <> xlSheetVisible And SH.Previous.Name = Sheets(1).Name Then
Sheets(Sheets.Count).Activate
Else
SH.Previous.Activate
End If
On Error GoTo 0
End If
End Sub
- 開発タブ > マクロ で作成した2つのマクロにショートカットを割り当てる
私はCtrl+jとCtrl+kを設定しました。
Ctrl+kは既存でリンクの作成が割りあたっていますが今まで使ったこともないショートカットキーなので
迷わず上書きです。
- 表示されていたPERSONAL.XLSBを保存し非表示に戻す。
- エクセルを閉じる(PERSONAL.XLSBについてのメッセージがでてくるはず)
感想
すこぶる楽になりました。
あのわずらわしかったシート切り替えがホームポジション上でできるようになりました。
既存のエクセルでも使用できますし、作成エクセルにマクロも残らないので影響もありません。
大満足です。
補足
マクロのショートカットはCtrl(+Shift)+英数字しか割り当てられません。
VBでショートカット登録をコーディングすればAltなども使えるようになるみたいです。
私も最初はAlt+jを想定していました。
が、VBでの追加が必要なことと、Altキーがエクセルのキー操作のホットキーになっているのでやめました。
参考にさせて頂いたサイト
http://kokodane.com/macro10.htm
https://support.office.com/ja-jp/article/Excel-%E3%81%AE%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88-%E3%82%AD%E3%83%BC-6a4319ef-8ea9-45d1-bd98-f238bf953ba6?ui=ja-JP&rs=ja-JP&ad=JP
http://www.moug.net/tech/exvba/0040030.html