キーに別の機能を割り当てるソフトAutoHotkeyを使ってShift+マウスホイールに横スクロールを割り当てるコードについて書きます。Excelについては需要が多くネットですぐ見つかるのですが、パワーポイントに対応できるスクリプトはあまり見つからず苦戦したので記録します。
パワーポイントで資料作成中、拡大して作業するといちいち下部のバーでフォーカス移動しないといけないのが面倒で、キー+マウスホイールのスクロールで横スクロールできないかと思い作成しました。
前提
AutoHotKeyをインストールしていない場合は先にインストールします。
Shift + マウスホイールに横スクロールを割当
以下のコードをahkファイルに書き込みます。
SetTitleMatchMode, 2
#IfWinActive, PowerPoint
~Lshift & WheelUp::ComObjCreate("PowerPoint.Application").ActiveWindow.SmallScroll(0,0,0,1)
~Lshift & WheelDown::ComObjCreate("PowerPoint.Application").ActiveWindow.SmallScroll(0,0,1,0)
コード解説
SetTitleMatchMode, 2
タイトルのマッチ方法を指定
1:前方一致(WinTitleで指定した文字列で始まるウィンドウが一致する)(高速)(デフォルト)
2:中間一致(WinTitleで指定した文字列を含むウィンドウが一致する)
3:完全一致(WinTitleで指定した文字列に完全に一致するものが一致する)
#IfWinActive, PowerPoint
#IfWinActive [, WinTitle, WinText]
WinTitle:ウィンドウタイトルなどの条件を指定。
WinText:ウィンドウに含まれるテキストの条件を指定。
Activeの他に以下も使用可能。
#IfWinExist [, WinTitle, WinText] #IfWinNotActive [, WinTitle, WinText] #IfWinNotExist [, WinTitle, WinText]
~Lshift & WheelUp::ComObjCreate("PowerPoint.Application").ActiveWindow.SmallScroll(0,0,0,1)
~Lshift & WheelDown::ComObjCreate("PowerPoint.Application").ActiveWindow.SmallScroll(0,0,1,0)
Lshift:左のシフトキー
WheelUp/Down:マウスホイールの上回し/下回し
ComObjCreate:COMオブジェクトのインスタンスを作成する
ActiveWindow.SmallScroll:SmallScroll (Down、 Up、 ToRight、 ToLeft)
Down | 文字列を下にスクロールする行数。 |
Up | 文字列を上にスクロールする行数。 |
ToRight | 文字列を右にスクロールする列数。 |
ToLeft | 文字列を左にスクロールする列数。 |
以上です。
ネットで検索していると、以下のスクリプトが出てきて参考にしていたのですが、私の環境ではエラーが出て動かなかったです。
SetTitleMatchMode, 2
#IfWinActive, PowerPoint
~Lshift & WheelUp::ComObjCreate("PowerPoint.Application").ActiveWindow.SmallScroll(0,0,0,3)
~Lshift & WheelDown::ComObjCreate("PowerPoint.Application").ActiveWindow.SmallScroll(0,0,3,0)
参考サイト:Horizontal Scrolling Powerpoint mouse wheel
私のスクリプトと違うところはスクロール時の列数です。参考サイトでは「3」でしたがこれがエラーの原因となっているっぽく、「1」にすると正常に動いたため私は「1」で運用しています。
これがなぜ列数3だとエラーになるのか原因がよく分かっていません。また分かったら追記したいと思います。
実行しておく
上記スクリプトを保存して、ファイル名を右クリック→Run Script
パワーポイントで横スクロールできるかどうか確認してください。
スタートアップに登録しておくと便利です。
参考サイト
以下のサイトを参考にさせていただいています。ありがとうございます。