こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

Windows10で Outlook2013を起動したとき、IME入力モードを通常開く「A」ではなく「あ」で開きたい。
Windows10アップデートをするまでは、VBAの記述が

Private Sub Application_Startup()
SendKeys ("{kanji}")
SendKeys ("{NUMLOCK}")
End Sub

で「あ」で開けておりました。
Windows10アップデート後、「あ」で開けません。
Windows7 Outlook2010 の環境では、上記の記述で開けております。
Windows10アップデート後、Outlook2013を「あ」で開きたいのです。
VBAの記述をお教えいただきたく、よろしくお願いいたします。

投稿日時 - 2018-08-18 16:05:43

QNo.9528670

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

外していたらごめんなさい。
VBAの問題ではなくWindows10の設定では?
下記サイトを参考にして下さい
スタートボタン--->設定(歯車マーク)クリック--->デバイス クリック--->入力 クリック--->キーボードの詳細設定 クリック--->「アプリウインドウごとに異なる入力方式を設定する」のチェックをはずします--->再起動する
これでIMEが「あ」の状態になると思います
https://kostrivia.com/3871.html

投稿日時 - 2018-08-19 18:20:51

補足

ご回答、ありがとうございます。
指示どおり設定し、Windows10再起動しましたが、IMEは依然として「A」のままです。

投稿日時 - 2018-08-20 09:17:39

お礼

ありがとうございます。

投稿日時 - 2018-08-20 09:17:57

ANo.3

思いつきです。
もしよかったら、次の候補2,3,4を試してみてください。

Private Sub Application_Startup()
 WaitFor (2)           '待ち:単位秒
 'SendKeys ("{kanji}")       '候補1
 'SendKeys ("{kanji}"), True    '候補2
 'If IMEStatus = vbIMEModeOff Then SendKeys "{kanji}"  '候補3
 If IMEStatus = vbIMEModeOff Then SendKeys "{kanji}", True '候補4
 SendKeys ("{NUMLOCK}")
End Sub


'--指定した秒だけ停止---
Function WaitFor(ByVal second As Integer)
 Dim futureTime As Date
 futureTime = DateAdd("s", second, Now)
 While Now < futureTime
  DoEvents
 Wend
End Function

※そもそも、
Outlookが起動し終わった画面で半角/全角キーを押せば、
IMEがオンになるんですよね?

投稿日時 - 2018-08-18 23:22:17

補足

ご回答、ありがとうございます。
候補2,3,4を試しました。改善されず「A」のまま。候補1は試し済み。
2秒を3秒にして候補1で試しましたが、改善されず「A」のまま。
2秒を1秒にして候補1で試しましたが、改善されず「A」のまま。
無理みたいです。
確かに、Outlookが起動し終わった画面で半角/全角キーを押せば、IMEがオンになるわけですが、押すことはしないため、文字入力をするとき、半角英数で入力をしてから気づくので、ストレスがたまるのです。

投稿日時 - 2018-08-19 09:54:52

お礼

ありがとうございます。
いろいろな案を、お示しいただき、本当にありがとうございます。

投稿日時 - 2018-08-19 09:56:35

ANo.2

WaitFor (2) 'この値が待ち時間;単位秒です。

これを3に変更すれば待ち時間が3秒に変わります。
試す価値がないわけではないとは思いますが
経験的には、それ以上大きくしても改善することは
期待できないんじゃないかと思います。

そもそも、
VBAにはIMEを直接制御する機能が(私の知る限り)ないため
SendKeys を使っているわけですが、
これ(待ち時間を設ける設定)で改善されないようであれば
他の対策は思いつきません。他の方のコメントに期待してください。

投稿日時 - 2018-08-18 20:34:37

お礼

ありがとうございます。

投稿日時 - 2018-08-19 09:57:43

ANo.1

私の環境(添付画像)では、指摘のコードで
期待通り、IMEがオンになります。
つまり、outlook起動直後の画面
(受信メールの一覧が表示された画面)で
"あ"の状態です。

Sendキーを使った制御なので、
OutLookの起動が完了する前に
Sendキーが動作してしまうのかもしれません。

もしよかったら、下記コードで
2秒(あるいは1秒)の待ちを加えてみてください。
なお、
少なくとも私の環境で異常はありませんが、
責任ある回答ではありません。


Private Sub Application_Startup()
WaitFor (2)
SendKeys ("{kanji}")
SendKeys ("{NUMLOCK}")
End Sub


'--指定した秒だけ停止---
Function WaitFor(ByVal second As Integer)
Dim futureTime As Date
futureTime = DateAdd("s", second, Now)
While Now < futureTime
DoEvents
Wend
End Function

投稿日時 - 2018-08-18 17:41:45

補足

早々に、ご回答ありがとうございます。
こちらは、
エデション   Windows10 Pro
バージョン   1803
インストール日 2018/06/23/(土)
OSビルド    17134.228
MicrosoftR OutlookR 2013 (15.0.5059.1000) MSO (15.0.5059.1000) 32 ビット
です。
記述は、'--指定した秒だけ停止---を一緒にして、
Private Sub Application_Startup()
WaitFor (2)
SendKeys ("{kanji}")
SendKeys ("{NUMLOCK}")
End Sub
'--指定した秒だけ停止---
Function WaitFor(ByVal second As Integer)
Dim futureTime As Date
futureTime = DateAdd("s", second, Now)
While Now < futureTime
DoEvents
Wend
End Function
ということでよろしいのでしょうか。
この記述は、待ちの時間が2秒ということですね。
こちらでは、「あ」にならず、依然として「A」のままです。
3秒にするには、2とsecondのところを3とthirdにすればよろしいのでしょうか?
よろしくお願いします。

投稿日時 - 2018-08-18 18:56:15

お礼

早速の、丁寧なご回答ありがとうございます。
お世話になります。

投稿日時 - 2018-08-18 18:58:47

あなたにオススメの質問