• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:メモ帳を、IME入力モード「あ」で開く構文について)

メモ帳をIME入力モード「あ」で開く構文について

このQ&Aのポイント
  • メモ帳を、IMEの入力モードが、ひらがな「あ」で開くようにする方法について教えてください。
  • IMEの入力モードが、通常、半角英数「A」で開くため、メモ帳をひらがなで開くことができません。
  • IMEの初期入力モードをひらがなに設定する構文を追加すれば、メモ帳をひらがなで開くことができます。

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

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

以下は、wsh の WshShell オブジェクトの SendKeys メソッドの説明。 http://msdn.microsoft.com/ja-jp/library/cc364423.aspx (google検索、wsh sendkeys でトップに出ます) これを見ても分かる通り、押している時間の設定なんぞ出来ません。 VBだとキーを押す・離すといった動作もできたはずなので、 押している時間やタイミングの調節もできたはずですが、 VBSでは簡単にはできません。 いま私の回答に対して、あなたができていないのは、IMEのキーの設定 ではないでしょうか? IMEのキー設定に関しては、以下のページが役に立つでしょう。 http://se-bikou.blogspot.jp/2010/10/imewindows7.html (MSIME) http://yuknak.com/main/useful/howto_ime/ime01.html (MSIME2010) (IME キー設定 方法 Windows7、IME2010などのキーワードで検索) これらを参考に、CtrL-O (よりは F13がおすすめ)キーを IME-オンに 割り振ればよいでしょう。 ところで、あなたの目的は何でしょう? 単純にメモ帳をIME オンの状態で開きたいだけならば、以下のアプリケーショ ンを使えば良いかと思います(動作するかは保証できません)。 「Dさんの日本語じゃなきゃイヤン。Ver.1.30」 http://www5.plala.or.jp/dsan/program.html VBSの勉強ならば、題材があまりよろしくありません。 VBSはどっちかというとバッチ処理(あまり人の手を介さずに)を高度に行う ためのものです。 参照 http://www.atmarkit.co.jp/ait/articles/0606/02/news116.html このサイト @IT には他にも WSHやその他の入門連載があり、非常に 良い参考資料になります。 VB系列の勉強ならば、VisualStudio Express をインストールして開発環境を 作ったほうが、このような小回りの効いたプログラムが作成できます。 画面を見ながら手動で行っているマウスやキーボードの操作などを自動化 させたい場合は、フリー・シェアウエアの UWSC を使うと良いでしょう。 BASICに似た構文で、簡単にいろいろな操作ができます。 サンプルも、入門サイトも豊富にあります。 http://www.uwsc.info/ この場合、IMEの状態なども調べることができ、以下の様な短いコードで 目的のことができます。(IMEのキー設定追加は一切不要です) Exec("notepad") // メモ帳起動 メモID = GETID("メモ帳",,-1) // メモ帳の WindowIDを取得 Ifb メモID >= 0 Then // メモ帳のウインドウがあったならば、以下の処理  Ctrlwin(メモID, ACTIVATE) // メモ帳のウインドウを手前にする。  Ifb Getkeystate(TGL_IME) = False Then // メモ帳のIMEの状態がオフならば、以下の処理   Sckey(メモID, VK_KANJI) // 「漢字」キーをメモ帳に送る  Endif Endif あと、非常に厳しいことをいいますが、あなたは調べたり聞いたりしてものを 作り上げていくことに向いていないと思います。 まず、質問のカテゴリーは「[技術者向] コンピューター >その他([技術者向] コンピューター) 」ではなく「[技術者向] コンピューター >プログラミング >Visual Basic」だと思います。こういうことに注意が向かないと、 問題解決に近づけなくなります。 1つ目の回答で、漢字入力に ならないとだけ報告するのではなく、 開くのダイアログが出てしまうと報告すれば、No2の回答ではなく、 この回答の趣旨を書いたはずなので、私とあなたの貴重な時間を無駄にせずに すみました。更に発生した問題の報告ができていません。 また、No.1の回答にある「IMEのキー設定で CTRL+O を IMEオン に設定して」が 分からないにもかかわらず、それを聞かずに別の無理な方法を聞いてきました。 回答者が できた という手順を再現する方法詳細を聞かずに、別のことを 聞くことは、回答者に余計な手間を取らせます。逆に回答の XXX の部分が わからないと聞けば、その詳細を書くだけなので、それほど苦にはなりません。 私もそうでしたが、VBS、VBA、VBの区別ができませんでした。 しかし、質問にあるようなコードを掲載しているWebサイトを読めば、 VBS, WSHなどのキーワードが必ず出てくるはずで、VBS 入門 や wsh 入門 な どのキーワードで Web検索すれば、それこそ手取り足取り詳細が説明されてい るサイト(@ITなど)に辿り着くはずです。 質問から、問答を経て1ヶ月かけてやっと問題解決しそうな回答に行き着くよ りも、入門サイトにある例題をどんどんこなしていくほうが、絶対早道です。

yonemasatsu
質問者

お礼

ありがとうございました。

yonemasatsu
質問者

補足

色々と、お教えいただきありがとうございます。もっと、勉強してみようと思います。 補足入力のところで、お尋ねいたしました、【画像の、左側の、赤丸で囲まれたところは、何と何とが表示されているのですか?画像の右側の青くなっている横一列は、キーはF13と思うのですが、その横は何と表示されているのですか?候補一のところは、「読み候補」ですか?】も、勉強の過程で、わかるかもしれません。何度しても、実現しない「あ」の表示も、できるようになるかもしれません。 ただ、「あ」の表示にしたいのは、ローマ字で入力が進んで行ってしまってから、気が付いて、ひらがなで再度入力しなおすのが、非常に面倒だからなのです。 私のために、貴重な時間を割いていただきありがとうございました。

その他の回答 (2)

回答No.2

まず、言語バーの入力モード表示が「あ」にならない件は notepad が開いてから1秒以上待つことになっていますので、 少し待ってから確認してください。また、必ずではないですが、 「あ」にならずに「A」のままでひらがな入力になっていることも ありました。この場合は、例えば a と入力すると あ と入力 されました。 言語バーの表示が「A」のままでも実際にキー入力をして 試してみてください。 あと、notepadが開いた後に、「開く」のファイル選択ダイアログが 表示された場合は、IMEの設定がされていない場合です。 この場合は、IME側の設定を確認してください。 見づらいかもしれませんが、添付の画像ファイルを確認して下さい。 なお、CTRL+O は上記のように notepad はファイルを開くキー設定が されているので、テスト後は別のキーに割り振るのがよいでしょう。 おすすめは F13 などです。通常のキーボードには無くアプリケーションとの 干渉がほとんどないからです。この場合は "^o" を "{F13}"に 変更が必要です。

yonemasatsu
質問者

お礼

補足にて、お願いさせていただいています。 誠に申しわけございませんが、よろしくお願いします。

yonemasatsu
質問者

補足

ありがとうございます。 ご回答のとおり、notepadが開いた後に、「開く」のファイル選択ダイアログが表示されます。それをキャンセルし、notepadを起動すると、やはりIME入力モードは「A」のままです。aを入力してもaのままです。 画像の、左側の、赤丸で囲まれたところは、何と何とが表示されているのですか? 画像の右側の青くなっている横一列は、キーはF13と思うのですが、その横は何と表示されているのですか?候補一のところは、「読み候補」ですか? 『Dさんの長押しIME起動2』のVer.2.5.0 http://dsan.blog74.fc2.com/blog-category-6.html をインストールしています。Windows7でも、正常に動いています。 この常駐を停止して、ご回答いただいた方法でnotepadを起動しても、IME入力モードは「A」のままです。aを入力してもaのままです。 この『Dさんの長押しIME起動2』を利用して、notepadをa を長押しして起動すれば、IMEの日本語入力モードが「あ」で開くと思うのです。私が、vbsの構文を考えて、notepad を起動しても、IMEの日本語入力モードが「あ」には、なりません。「A」のままです。 あつかましくて、すみません。お願いがあるのですが、『Dさんの長押しIME起動2』を利用して、notepadをaを長押しして起動すれば、IMEの日本語入力モードが「あ」で開くvbs の構文を考えてもらうことは、できないでしょうか? よろしく、お願いいたします。

回答No.1

OSが何なのか、XP?Vista?7?、言語は何なのか、VBS?VBA? 情報がないので、正確な回答ではないかもしれません。 まず、(1)の言語は VBS, (2)の言語はVBAのため、似て非なるものです。 そのままコピペでは結合できません。 他の質問がVBSのためVBSと仮定すると、問題がひとつ。 VBSではIMEの状態を調べる方法はありません。他のプログラムの 助けが必要です。旧来のIMEのならば imm32.dll を利用しなければなりませんし、 TSFの場合はさらに面倒です。 しかし、メモ帳が起動時はIMEが必ずオフであることを前提にすれば、ステータスを 調べずにいきなりIMEをオンにする動作でも良いでしょう。 起動したアプリを操作するので、Runメソッドよりは Execメソッドの方が 恐らく便利です。 Sendkeysは WshShell オブジェクトで利用します。 しかし、私の環境 Windows7 64bitでは {kanji} や {kana} が動作しなかった ため、IMEのキー設定で CTRL+O を IMEオン に設定して、{^o} を送るように しました。 以上を踏まえて、作成したコードは以下のとおりです。 汎用に使用するのであればダメダメなコードですが、自分だけで使用する分には こんなものでも良いでしょう。 Option Explicit Dim objWshShell Dim objExec Set objWshShell = WScript.CreateObject("WScript.Shell") Set objExec = objWshShell.Exec("notepad.exe") ' 起動を待つ Do Until objWshShell.AppActivate(objExec.ProcessID) WScript.Sleep 1000 Loop ' notepad が起動していることを確認する if objExec.Status = 0 Then WScript.Sleep 1000 'これを入れないとなぜか動かなかった objWshShell.SendKeys "^o",True ' IME 設定で CTRL+O をIMEオンに変更 End if set objExec = Nothing set objWshShell= Nothing

yonemasatsu
質問者

お礼

ご回答、ありがとうございます。 補足にて、再度お尋ねします。

yonemasatsu
質問者

補足

早速、ご回答いただきまして、ありがとうございます。 Windows7 32bit Windows7 64bit の、それぞれで、お教えいただきました構文を vbs にして メモ帳を開きましたが、IMEの入力モードは、半角英数「A」のままです。メモ帳は、日本語モード「あ」では、開きませんでした。 希望通りには、なりませんでした。 (1)の言語は VBS, (2)の言語はVBA の違いもよくわからず、質問いたしております。ご迷惑をおかけしております。