【広告】

Amazonブラックフライデーが12月2日まで開催中です!

個人的には、Anker製品か、コカ・コーラがかなり安くなっているのでおすすめです!

高級キーボードで有名な東プレが最近発売した「REALFORCE R3」もセールをやっていました!詳しくはこちらの記事を確認してみてくださーい。

【AutoHotkey】Excelだけマウスホイールのスクロール行数を変更する方法

2021年11月7日AutoHotkey

AutoHotkey のアイコン

この記事では、Excel を起動している時だけマウスホイールのスクロール行数を調整する方法について書きます。

【AutoHotkey】Excelだけマウスホイールでのスクロール行数を変更する方法

キーに別の機能を割り当てるソフトAutoHotkey を使えば、Excel だけマウスホイールのスクロール行数を調整できます。

ブラウザのスクロールは早いまま、Excel だけ1行スクロールにすることができます。分かりやすいように動画を貼っておきます。ブラウザでは素早いスクロールでExcel だけ1行スクロールになっています。

僕はExcel に映画とかの感想を1人淡々と記録しているんですが、その時のスクロール行数が多すぎて目的の場所までうまく調整できないってことが多々あります。

インターネットで調べると、Excel だけじゃなくてパソコン全体のスクロール行数を変更する方法しか書いてなかったんですよね。知りたいのはそうじゃないんですよねぇ。

一度にスクロールする行数

パソコン全体のスクロール行数を1行にしたらブラウザでのスクロール量が少なすぎて、ひたすらマウスホイールを回転しないといけなくなってとても不便です。

ブラウザでは今まで通り10行~15行で一気にスクロールして、Excel だけ1行スクロールに変更したいんです!ってことで、僕のブログで何回も紹介しているキーに別の機能を割り当てるAutoHotkey を使って実現してみたいと思います。

前提

この記事では、AutoHotkey を既にインストールしている前提で書いています。

インストールしていないという方は以下の記事を参考にしてみてください。

コード

書き込むコードは以下のようになっています。

;-----【Excel】スクロール行数の調整-----
#IfWinActive ahk_exe EXCEL.EXE
   WheelUp::			;マウスホイール上回転
	SetScrollLockState, On
	SendInput {Up}		;1行だけスクロール
	SetScrollLockState, Off
	Return

   WheelDown::			;マウスホイール下回転
	SetScrollLockState, On
	SendInput {Down}	;1行だけスクロール
	SetScrollLockState, Off
	Return

#IfWinActive

Excel 上でマウスホイール回転すると、スクロールロックをオン → 矢印キーを入力するようにしています。

スクロールロックは、キーボードの矢印キーを入力するだけで画面をスクロールできる機能です。キーボードの右上あたりにあるキーですね。

上記のコードだと1行スクロールになっています。もし2行~5行といったようにスクロールの行数を増やしたい場合は、以下のアコーディオン(↓の青い枠内)を参考にしてみてください。

「〇(黄色ハイライトの部分)」に好きな半角数字を入力しましょう。入力した数字がスクロール行数です。

;-----【Excel】スクロール行数の調整-----
#IfWinActive ahk_exe EXCEL.EXE
   WheelUp::			;マウスホイール上回転
	SetScrollLockState, On
	SendInput {Up }		;〇行だけスクロール
	SetScrollLockState, Off
	Return

   WheelDown::			;マウスホイール下回転
	SetScrollLockState, On
	SendInput {Down }	;〇行だけスクロール
	SetScrollLockState, Off
	Return
#IfWinActive

例えば、3行なら{Up 3}といったようになります。Up・Downと数字の間には、半角空白があるので消さないように注意してください。

意味

僕が分かる範囲の意味を書いておきます。これが分かるようになれば自分で好きなようにキーを変えたりできます。

コード意味
;—–【Excel】スクロール行数の調整—–ただのコメント。自分の分かりやすいように変更してOK
ただし、「;」は消さないように。
IfWinActive ahk_exe EXCEL.EXEExcel が起動している時だけ発動。
WheelUp::マウスホイール上回転
SetScrollLockState, Onキーボードのスクロールロックをオン
SendInput {Up}上矢印キーを入力
SetScrollLockState, Offキーボードのスクロールロックをオフ
WheelDown::マウスホイール下回転

上記コードを実行している時と実行していない時の動画を貼っておきます。歴然の違いです。今までよく頑張ってな…僕。

ちょー便利です。

このコードのデメリット

このコードには明確デメリットが1点、少し気になることが1点あります。

フォント選択のスクロールができない

上記で紹介したコードは、Excel 上でマウスのスクロールをした時に必ずスクロールロックが発動します。

これによりフォント選択などのポップアップメニューに対しては、うまい具合にスクロールされません。スクロールしても、前後のフォントを行ったり来たりするだけです。

対策としては、フォント選択画面の右側にあるスクロールバーを活用するのが有効です。

11月25日追記

どうしても気になったので対策を考えました。

こちらを参考にしてみてください。

Scroll Lock が邪魔

Excel ではスクロールロックをオンにすると、左下に「Scroll Lock」と表示されます。スクロールをするたびにスクロールロックのオンオフを切り替えるので、この表示がちらつきます。

Excel のステータスバー

対策としてはステータスバー(Scroll Lock と表示されている部分)を右クリック → Scroll Lock のチェックを外すと非表示にできます。

ステータスバーの右クリックメニュー

【11月25日追記】サスペンドキーを設定しておくと便利

上記で紹介したデメリットがどうしても気になったのでどうにか改善できないか色々考えてみました。その結果、スクリプトを一時停止する「サスペンド」と呼ばれるコマンドを設定するようにしました。

これにより指定したキーを押すだけでスクリプトの再開・一時停止が切り替えれるようになります。

コードは以下になります。僕は、Pauseに割り当てました。Pauseを押す度にモードが切り替わります。

;-----Pauseキーでスクリプト一時停止(サスペンドモード)-----
Pause::Suspend

普通のスクロールをしたい時はサスペンドモード、1行スクロールにしたい時はサスペンドモード解除って感じで使い分けています。

サスペンドモードの時は、タスクトレイのアイコンが「S」になるので分かりやすいです。

サスペンドモード

まとめ

以上、AutoHotkey を使って、Excel だけでのマウスホイールのスクロール行数を調整する方法についてでした。

結構便利です。似たような方法で、Shift+マウスホイール回転で横(水平)スクロールする方法についても書いています。気になったら見てみてください。

参考:【AutoHotkey】Shift+マウスホイールで横(水平)スクロールしてみよう!Excelで楽々移動! | ナポリタン寿司のPC日記

Posted by ナポリタン寿司