日本語入力ONかつ「NumLock」ONのマクロ

このQ&Aのポイント
  • Excelを起動したときに、「NumLock」キーがOFFにならないようにしてONのままで、IMEが日本語入力ONで起動できる方法について教えてください。
  • Excel2010では、起動したとき、「NumLock」キーがOFFにならずにONのままで、IMEを日本語入力ONで起動できるようになっていました。
  • しかし、Excel2013では、IMEは日本語入力ONになるものの、SendKeysの影響で「NumLock」キーがOFFになってしまいます。記述に足りない部分や修正方法を教えてください。
回答を見る
  • ベストアンサー

日本語入力ONかつ「NumLock」ONのマクロ

Excelを起動したときに、「NumLock」キーがOFFにならないようにしてONのままで、IMEが日本語入力ONで起動できるようにしたいのです。 Excel2010では、起動したとき、下記の3行マクロで「NumLock」キーがOFFにならずにONのままで、IMEを日本語入力ONで起動できておりました。。 Sub Auto_Open() SendKeys ("{kanji}") End Sub しかし、Excel2013では、IMEは日本語入力ONになるにはなるのですが、SendKeysの影響で「NumLock」キーがOFFになってしまいます。 「NumLock」キーをONにするために、Call numLockOnを挿入して、 Sub Auto_Open() SendKeys ("{kanji}") Call numLockOn End Sub としましたが、「NumLock」キーがOFFになってしまいます。 「NumLock」キーをONにしたいのですが、記述の何が足らないかお教えいただけませんか。 よろしく、お願いします。

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

  • ベストアンサー
回答No.2

SendKeys で Numlock が外れるのは昔から。 API で IME のOn/Off を切り替えれば良いかと。NumLock が外れることもありませんし。 以下3行を VBA の標準モジュールに記述 Public Declare Function ImmGetContext Lib "imm32.dll" (ByVal hWnd As Long) As Long Public Declare Function ImmSetOpenStatus Lib "imm32.dll" (ByVal himc As Long, ByVal b As Long) As Long Public Declare Function ImmReleaseContext Lib "imm32.dll" (ByVal hWnd As Long, ByVal himc As Long) As Long ThisWorkbookの方には Private Sub Workbook_Open() Dim himc As Long Dim hWnd As Long 'IMEをOn himc = ImmGetContext(Application.hWnd) Call ImmSetOpenStatus(himc, 1) Call ImmReleaseContext(hWnd, himc) End Sub これでIME が ON になるかと思います。 Excel2013 は持ち合わせていないので、2010と2016(ともに32Bit版)で試しました。 参考にしたところ http://www.alato.ne.jp/kazu-/vb/tip09.htm 蛇足?ですが、時間があったら読んでみてください。 NUM を切り替えるにはロック、CAPS LOCK キー、およびスクロール ロック キー方法 https://support.microsoft.com/ja-jp/kb/177674 NumLock操作を制御する方法 - Windows APIの使用:SampleFile214 http://www.accessclub.jp/samplefile/samplefile_214.htm

yonemasatsu
質問者

お礼

失礼します。 さきほど、あつかましいお願いをしましたが、お教えいただいた説明とかを読んでいくうちにわかりました。 解決いたしました。IME、NumLockともONにて起動できました。 ほんとうに、ありがとうございました。

yonemasatsu
質問者

補足

ご回答ありがとうございます。 Sub Auto_Open() SendKeys ("{kanji}") End Sub 上記(1)を標準モジュールに残し、 Public Declare Function ImmGetContext Lib "imm32.dll" (ByVal hWnd As Long) As Long Public Declare Function ImmSetOpenStatus Lib "imm32.dll" (ByVal himc As Long, ByVal b As Long) As Long Public Declare Function ImmReleaseContext Lib "imm32.dll" (ByVal hWnd As Long, ByVal himc As Long) As Long この3行(2)を別の標準モジュールに記述しましたが、できません。 Private Sub Workbook_Open() Dim himc As Long Dim hWnd As Long 'IMEをOn himc = ImmGetContext(Application.hWnd) Call ImmSetOpenStatus(himc, 1) Call ImmReleaseContext(hWnd, himc) End Sub これ(3)これだけを標準モジュールに残し、他の標準モジュールを削除し試しましたができません。 (1)を削除して、(2)と(3)をそれぞれ別の標準モジュールに記述しましたができません。 誠にすみませんが、全体の標準モジュールの記述を書いていただけますか。よろしく、お願いします。

その他の回答 (1)

  • tamohoykm
  • ベストアンサー率13% (53/397)
回答No.1

BIOSでは、on設定になっていますか。 オン設定にもかかわらず、ならないなら、レジストリーで変更するしかありません。

yonemasatsu
質問者

補足

早速の回答ありがとうございます。 SendKeysが影響してnumlockキーがOFFになるのです。該当ページあり。https://support.microsoft.com/ja-jp/kb/179987 ただただ、その影響でOFFになったnumlockキーをONにしたいのです。 そのマクロをお教えいただきたいのです。 こちらのは、BIOSはonの設定です。

関連するQ&A

  • Word2007数式でIMEオン/オフをマクロで

    Word2007で数式入力開始時に,IMEを自動的に半角英数にしたいので次のようなマクロを作ってみました.(Word2003以前は自動でIMEがオフになったのに) Sub EquationPlus() If IMEStatus <> vbIMEModeHiragana Then 'SendKeys "{kanji}" SendKeys "%{kanji}" '漢字キーの代わりに変換キーを使っているので WordBasic.EquationEdit Else WordBasic.EquationEdit End If End Sub 問題は,数式モードを抜けたらIMEを全角ひらがなに戻したいのですが,WordBasic.EquationEditの直後にSendKeys "%{kanji}"を付けると,数式モードを抜ける前に全角ひらがなに戻ってしまいます. 数式モードを抜けたことを検出してIMEを全角ひらがなに戻すことは可能なのでしょうか.

  • Access2000 日本語入力をOnにしても半角になってしまう

    Access2000です。 テキストボックスのIME入力モードを「オン」・「人名地名」に設定しています。 しかし、その前のテキストボックスが、入力モードを「オフ」にしている関係かわかりませんが、 日本語入力には切り替わるのですが、半角になってしまいます。 (最初に起動したときはいいのですが、一通り入力し終わって、また、日本語入力がオフのテキストボックスから、オンのテキストボックスに移ると、半角になります。) CapsLockキーがひらがなキーを押して、全角に変更して使っているのですが、ちょっと面倒です。 どうすれば、全角の日本語入力に切り替わるんでしょうか? お分かりの方、よろしくお願いいたします。 (ちなみに、日本語入力はオフになる=直接入力という意味ではありません。日本語入力がオンだが、半角になる=半角英数になるという意味です。「あ」ではなく「_A」という状態に切り替わります。)

  • 日本語入力が勝手にONになっている

    Microsoft IME 2012 (15.0.9200.16420)を使用しています。 パソコン起動時に、必ず日本語入力がONになっているのですが、起動時はOFFの状態であってほしいです。 設定で変えられるものなのでしょうか。

  • IMEの日本語入力切替えについて

    IME(IME2003)の切替えの話です。 通常IMEをON/OFFするには「半角/全角」キーを押しますよね。 また、IME ONの状態だと「変換」キーにて[半角英数]と[全角かな]のモードが切替わります。 英数字を入力している最中に日本語を入力しようとすると 1. IMEがONしていないのに「変換」キーを押す。→日本語入力できない。 2. IMEがONで[半角英数]モードになっているのに「半角/全角」キーを押してIMEをOFFしてしまう。→日本語入力できない。 など、私は「半角/全角」キー、「変換」キーを色々押してからやっと日本語入力できる状態になりイライラすることが多くあります。 私がIMEツールバーの状態を見ないで適当に操作することが原因(私は入力画面だけを見てそれ以外を見ない癖があるのです)だとは思うのですが、皆さんも同じような状況なのでしょうか。 それとも何かツールを入れるとかIMEの設定を変更して対応しておられますでしょうか。(私の職場のPCは共用なので設定変更やツールはダメなのですが) 根本的に私のIMEの使い方の問題でしょうか。

  • 日本語入力アイコンが消えた

    日本語入力インジケータがタスクバーより消えてしまったときは、どうすれば復元できますか?半/全キーは有効なので日本語入力自体は問題なくできますが、日本語入力アイコンも消えてしまっているため、日本語のオン・オフ状態が分からず困ります。タスクバーを右クリックしてもありません。VISTAにでIME2007使用。再起動以外の方法を教えてください。

  • アップデート後もOutlook 「あ」で開きたい

    Windows10で Outlook2013を起動したとき、IME入力モードを通常開く「A」ではなく「あ」で開きたい。 Windows10アップデートをするまでは、VBAの記述が Private Sub Application_Startup() SendKeys ("{kanji}") SendKeys ("{NUMLOCK}") End Sub で「あ」で開けておりました。 Windows10アップデート後、「あ」で開けません。 Windows7 Outlook2010 の環境では、上記の記述で開けております。 Windows10アップデート後、Outlook2013を「あ」で開きたいのです。 VBAの記述をお教えいただきたく、よろしくお願いいたします。

  • BIOSで起動時NUMLOCK onなのに、そうならない

    機種は、FMV-DESKPOWER M7/1007、Win2000proプレインストールモデルです。 当初は、ログオン時のパスワード入力画面で、テンキーから数字が入力できていました。ある日、他の方が使った後なのですが、いちいちNUMLOCKキーを押さないとダメになりました。 BIOSを確かめても、起動時NUMLOCK onですし、レジストリーの設定も<2>です。パスワード(数字)入力のため、NUMLOCKキーを押すので、もちろん、Win2000が立ち上がったときは、テンキーから数字が入力できる状態です。 NUMLOCK onの状態から、Ctrl+Alt+Delで、ログオフし、直前の状態保存…というのもしましたが、同じです。 慣れない者も使うので、簡単な数字(大文字小文字の違いがない)で、しかも、いちいちNUMLOCKキーを押さないで、数字のパスワード入力したいのです。 最初は、確かに出来ていたはずなのです。 どうして変わったのか、分かりません。 今は、スイッチを入れて、しばらくは、NUMLOCKランプがつき、NUMLOCK onで起動するかに見えて、ログオン画面直前で消えてしまって、NUMLOCKキーを押さなければならなくなってしまったのです。 元のように戻したいのですが、どうしたらよいでしょうか? 一度、BIOSもレジストリーもNUMLOCK offにし、再設定もしてみましたが、直りません。 よろしくご教授お願いいたします。

  • Windows起動時にIME98の日本語入力を自動的にオン

    ずっと前から思っていたのですが、Windowsを起動したときに IMEの日本語入力を自動的にオンにする事はできないんでしょうか? また、Webページを切り替えた時に日本語入力がいったんオフになってしまうのですが、 常にオンにしておくことは不可能でしょうか Webのテキスト欄などに入力する時に1回1回「オン」にしないといけません 使っているのはMS-IME98でATOKです 半角英数を入力することがほとんどないので・・・ みなさんは日本語入力をする時はその都度「オン/オフ」を切り替えているのでしょうか?? もし何かあれば補足しますので、どなたか教えてください。

  • ワード以外のソフトを起動した時、最初から日本語入力がONにすることは可能?

    ウィンドウズを起動すると、日本語入力はOFFで、ワード以外のソフトを起動した時もOFFですが、メールソフトやインターネットブラウザを起動した時からIMEの日本語入力をONの状態にすることはできるのですか?いちいちONに切り替えなくてもよいように。よろしくお願いします。

  • ワード・エクセルで日本語入力できない。

    ウィンドウズ2000、ワード2000、エクセル2000、IME2000を使用しています。  突然、日本語入力ソフトIMEのON,OFFの切り替えがキーボードからできなくなり、日本語も入力できなくなりました。マウスで「A」をクリックすれば「あ」に切り替わります。  IMEツールバーを日本語入力「あ」にして、ワードでAのキーを押すと「ピィン」と音が鳴り文字が入力できません。エクセルだと日本語入力状態「あ」なのにアルファベットの小文字が入力されます。ちなみにメモ帳でも日本語入力状態でもアルファベットの小文字が入力されます。  再起動をしても日本語は入力されませんでした。  どなたかわかる方、教えてください。

専門家に質問してみよう