• ベストアンサー

エクセルの入力でセル移動

MSのエクセルで、セルに指定された文字数を入力したらEnterや矢印キーを押さなくても次のセルに移動させる方法はないでしょうか? 例えばA1セルに入力出来る文字数は3と指定しておきます。A1セルに3文字入力したら、次のセルA2に移動するようにする方法です。入力規則で文字列指定まではできますが、次にセルに移動するにはEnterなどが必要です。これを省略する方法です。 バージョンは2003ですが、2007,2010でできるのでしたらそのバージョンでも構いません。

質問者が選んだベストアンサー

  • ベストアンサー
  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.2

AkiraHariさん こんにちは。 全く可能性がないわけではないですが、ほとんど無理に近いです。 可能性があるのは、WindowsでAPI(モジュール)を使って、EXCELで入力したキーをフック(割り込み)し、キーボードの何を押したかが分かります。 使用するAPIは「SetWindowLong」「CallWindowProc」です。 次の問題があると思います。 ・セルに現在何文字入力しているかが分からない(ENTERでセルの文字が確定)。  →自分で入力文字、Backspace,DEL等々で入力文字をカウントすれば可能かも知れませんが   現実では難しいと思います。 ・Windowsのシステムモジュールを使用しているので、プログラムできちんと制御しないと  途中でEXCELで入力できなくなったり、様々な問題が起きる可能性があります。 やはり、キーボード制御を行うのはちょっと邪道なので、違う方法を考えた方が良いと思います。 例えば、フォームのテキストボックスから入力させ、セルにセットするようにすれば、 かなり細かな文字制御ができるかと思います。

AkiraHari
質問者

お礼

ありがとうございます。 セルで行うのはかなり無理なようですね。 教えていただいたものは私には難しいですが、おいおいやってみます。

その他の回答 (1)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

残念ながらご質問の様な振る舞いはエクセルではできません。 文字入力中は別制御下にあり、関数やマクロでは制御できず、enterキー押下やマウスクリック等により初めて制御が可能になるので新たに機能開発しないと出来ないと思う。

AkiraHari
質問者

お礼

ありがとうございます。 関数でもマクロでも制御できないということは無理ということですね。キーインに合わせて1文字ずつ表示されていくのでできないのかなと思いましたが残念です。