route127の日記: autohotkeyでexcel文字色変更時のマウスカーソル移動量短縮スクリプト
excelで文字色を黒→赤、赤→黒に変換する機会が頻繁にあるのだが、その度にマウスカーソルを選択中のセルからリボン上に移動させ、さらにカラーパレットを表示させて文字色を選ぶという操作が煩雑に感じられて来た。
autohotkeyでセル文字の赤色化のホットキーを作成しようかとか、ホットキーで赤黒をトグルで切り替えようか、とかも考えたがなんか違うな、といろいろ考えていてひとまずセル選択して左手のホットキーで現在のマウスカーソル位置に黒か赤かの文字色選択メニューを出すようにした。
などと書くと大仰だが、既存のスクリプトを組み合せれば実現可能であることは分かっていた。
excelの文字色についてはexcelのショートカットキー(自分のマシンだとalt hff1だった)を利用する方法やCOMオブジェクトを利用する方法が既に発表されている。
メニュー表示についてはahkwikiに説明があるが、かっこ挿入での実例を参考にした。
Menu, test, Add, red
Menu, test, Add, black
return
red:
IfWinNotActive, ahk_class XLMAIN
{
MsgBox % "Excel is not active. No action will be performed."
Return
}
try
epExcel := ComObjActive("Excel.Application")
catch
{
MsgBox % "Unable to execute the shortcut."
Return
}
try
epExcel.Selection.Font.ColorIndex := 3
catch
{
MsgBox % "Unable to set the color."
}
epExcel :=
return
black:
IfWinNotActive, ahk_class XLMAIN
{
MsgBox % "Excel is not active. No action will be performed."
Return
}
try
epExcel := ComObjActive("Excel.Application")
catch
{
MsgBox % "Unable to execute the shortcut."
Return
}
try
epExcel.Selection.Font.ColorIndex := 0
catch
{
MsgBox % "Unable to set the color."
}
epExcel :=
return
^+c::Menu, test, Show
セルを選択した状態でctrl+shift+cを押下しメニューを表示してから赤黒選択みたいなことをしていたが、そもそもセルの右クリックメニューで文字色は変えられるのだった。
しかも他のマシンのexcelではComObjActiveのところでこけてうまく動かなかった。
autohotkeyでexcel文字色変更時のマウスカーソル移動量短縮スクリプト More ログイン