エクセル術

セル編集中にマクロを動かす

セルの編集中にマクロを動かしたい、という要望があります。たとえば、入力中の文章を自動でコピーしたり、ある特定の文字を入力したらメッセージを出したり。
また、通常のキーボード入力では出ないような文字(たとえばハングルなど)を入力したい場合です。

セルの編集中というのはこういう状態です。

セル内でカーソルが点滅している
数式バーでカーソルが点滅している

この時にマクロを動かす、という方法ですが、実は出来ません。これはExcelの仕様です。

 

ではどうするか

編集中にマクロを動かしたい、という事はマクロ実行後に編集モードになっていればいいのではないですか?ケース・バイ・ケースではありますが、大体それで解決しそうな気がします。

編集モードに戻すにはF2キーを叩けば編集モードになるので、それを送るだけですね。

SendKeys "{F2}"

流れとしては一旦セル確定して、例えばWorksheet_Changeでも良いですし、マクロを動かす。

で、その動かしたマクロの最後にSendKeys “{F2}”を入れる。もちろんセル選択を編集してたセルに戻ってからですけどね。

一旦、編集確定させた後、マクロ動かし、また編集モードに戻すことで編集中にマクロ動かしたように錯覚する・・・かも?

モバイルバージョンを終了