dポイントプレゼントキャンペーン実施中!

メモ帳を起動したとき、IMEの入力モードが、通常、半角英数「A」で開くようになっています。そのメモ帳を、IMEの入力モードが、ひらがな「あ」で開くようにしたいのですが、何度、試しても、うまくできません。
次の(1)に、(2)を、どこに、どのように、追加すればよいか、お教えください。
構文が、間違っておりましたら、ご指摘くださいますよう、お願いいたします。
よろしく、お願いいたします。

(1)
Option Explicit
Dim objWshShell
Set objWshShell = WScript.CreateObject("WScript.Shell")
objWshShell.Run "C:\Windows\System32\notepad.exe"
Set objWshShell = Nothing

(2)
Sub IMEの初期入力モードをひらがなに設定する()
If IMEStatus <> vbIMEModeHiragana Then
SendKeys "{kana}", True
End If
End Sub

A 回答 (3件)

以下は、wsh の WshShell オブジェクトの SendKeys メソッドの説明。


http://msdn.microsoft.com/ja-jp/library/cc364423 …
(google検索、wsh sendkeys でトップに出ます)

これを見ても分かる通り、押している時間の設定なんぞ出来ません。
VBだとキーを押す・離すといった動作もできたはずなので、
押している時間やタイミングの調節もできたはずですが、
VBSでは簡単にはできません。

いま私の回答に対して、あなたができていないのは、IMEのキーの設定
ではないでしょうか?
IMEのキー設定に関しては、以下のページが役に立つでしょう。
http://se-bikou.blogspot.jp/2010/10/imewindows7. … (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/n …
このサイト @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ヶ月かけてやっと問題解決しそうな回答に行き着くよ
りも、入門サイトにある例題をどんどんこなしていくほうが、絶対早道です。

この回答への補足

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

補足日時:2013/10/15 09:17
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/10/15 09:17

まず、言語バーの入力モード表示が「あ」にならない件は


notepad が開いてから1秒以上待つことになっていますので、
少し待ってから確認してください。また、必ずではないですが、
「あ」にならずに「A」のままでひらがな入力になっていることも
ありました。この場合は、例えば a と入力すると あ と入力
されました。
言語バーの表示が「A」のままでも実際にキー入力をして
試してみてください。

あと、notepadが開いた後に、「開く」のファイル選択ダイアログが
表示された場合は、IMEの設定がされていない場合です。
この場合は、IME側の設定を確認してください。
見づらいかもしれませんが、添付の画像ファイルを確認して下さい。

なお、CTRL+O は上記のように notepad はファイルを開くキー設定が
されているので、テスト後は別のキーに割り振るのがよいでしょう。
おすすめは F13 などです。通常のキーボードには無くアプリケーションとの
干渉がほとんどないからです。この場合は "^o" を "{F13}"に
変更が必要です。
「メモ帳を、IME入力モード「あ」で開く構」の回答画像2

この回答への補足

ありがとうございます。
ご回答のとおり、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 の構文を考えてもらうことは、できないでしょうか?
よろしく、お願いいたします。

補足日時:2013/10/08 17:15
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/10/08 17:19

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

この回答への補足

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

補足日時:2013/09/28 20:08
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/09/28 20:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!