
No.1ベストアンサー
- 回答日時:
こんばんは。
詳しい状況が分らないので、あまり正確にVBAのコードを書くことが出来ません。IMEをどこで使うかによっても変ってきます。なお、入力規則とはかなり違います。
まあ、一般的な方法を二つ書いておきます。
'--------------------------------------------
Sub IMEControl1()
Dim Ret As String
If IMEStatus <> vbIMEModeOff Then
SendKeys "%{kanji}"
End If
Ret = Application.InputBox("入力してください。", Type:=2)
If Ret <> "" Then
MsgBox "IME-OFF with SendKey :" & Ret
End If
End Sub
'次は、Win32 API関数を使った方法です。
'--------------------------------------------
Private Declare Function ImmGetContext Lib "imm32.dll" (ByVal hWnd As Long) As Long
Private Declare Function ImmReleaseContext Lib "imm32.dll" (ByVal hWnd As Long, ByVal hImc As Long) As Long
Private Declare Function ImmSetOpenStatus Lib "imm32.dll" (ByVal hImc As Long, ByVal b As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As Long) As Long
'--------------------------------------------
Sub IMEControl2()
Dim hImc As Long
Dim myHWnd As Long
Dim Ret As String
'バージョンチェック
If Application.Version > 9 Then
myHWnd = Application.hWnd
Else
myHWnd = FindWindow("XLMAIN", 0)
End If
hImc = ImmGetContext(myHWnd)
'IMEをOFF
If hImc <> 0 Then
Call ImmSetOpenStatus(hImc, 0)
Call ImmReleaseContext(myHWnd, hImc)
End If
Ret = Application.InputBox("入力してください。", Type:=2)
If Ret <> "" Then
MsgBox "IME-OFF with API :" & Ret
End If
End Sub
No.2
- 回答日時:
>日本語入力OFF
(1)入力モードの初期値を英数にするということですか
(2)結果入力値が全角ではない内容にしたいということですか。
(2)だと回答は大幅に変わるでしょう。
>セルへの入力であれば、入力規則で出来るので
これも(1)のはず。
マクロの記録ではValidationの .IMEMode = xlIMEModeAlphaと出てきます。
TextBoxなどコントロールにはプロパティにIMEModeがあります。
InputBox関数自体にIMEを制御する機能はありません。
その対策として
http://www.officetanaka.net/excel/vba/tips/tips1 …
に逆のケース(ONにするケース)が載ってます。
APIを使う例も。
(ただし私のケースでは、SendKeys ("{kanji}")はOnにならずOffになった。)
対策以下は自信なし。
>(1)入力モードの初期値を英数にするということですか
こちらです。
SendKeys で対応することにしました。
参考URLありがとうございました。
>InputBox関数自体にIMEを制御する機能はありません
と書いてあり、今回の質問の回答になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
InputBoxの入力値を半角数字のみと限定する方法
Excel(エクセル)
-
EXCEL VBA でインプットボックスを開いたときの入力モードの設定について
Excel(エクセル)
-
InputBoxでの日本語オン、オフ設定方法
Visual Basic(VBA)
-
-
4
エクセルVBAでIME入力モードの制御
Excel(エクセル)
-
5
Excel VBAで、Application.InputBoxのキャンセルと入力値ゼロを区別したい。
Visual Basic(VBA)
-
6
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
7
inputboxの日本語入力切替について
その他(プログラミング・Web制作)
-
8
Excel VBAで、ユーザーフォームの値を、モジュールで使用したい。
Visual Basic(VBA)
-
9
【Excel】 VBAでIMEの操作はできますか?
Excel(エクセル)
-
10
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
11
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
12
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
13
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
14
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
15
エクセルVBAで、MsgBox やInputBox は、画面の中央以外に表示させたい。
Excel(エクセル)
-
16
エクセル ボタンに設定したマクロごとボタンをコピー
Excel(エクセル)
-
17
エクセルVBA ユーザーフォームのTextBoxを日付にしたい
Excel(エクセル)
-
18
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
19
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
20
VBA シートのボタン名を変更したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの文字数列関数と競馬...
-
エクセルでフィルターした値を...
-
表計算ソフトでの様式の呼称
-
エクセルシートの見出しの文字...
-
エクセルに写真が貼れない(フ...
-
【マクロ】実行時エラー '424':...
-
【画像あり】【関数】指定した...
-
Office2021のエクセルで米国株...
-
【関数】3つのセルの中で最新...
-
LibreOffice Clalc(またはエク...
-
Excelで4択問題を作成したい
-
【画像あり】オートフィルター...
-
空白のはずがSUBTOTAL関数でカ...
-
エクセルのVBAで集計をしたい
-
Excelに貼ったXのURLのリンク...
-
エクセルのライセンスが分かり...
-
【マクロ】excelファイルを開く...
-
エクセルの複雑なシフト表から...
-
エクセルのリストについて
-
【関数】=EXACT(a1,b1) a1とb1...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】実行時エラー '424':...
-
エクセルのVBAで集計をしたい
-
Office2021のエクセルで米国株...
-
【画像あり】オートフィルター...
-
vba テキストボックスとリフト...
-
他のシートの検索
-
【マクロ】【相談】Excelブック...
-
【マクロ】【配列】3つのシー...
-
【マクロ】元データと同じお客...
-
【マクロ】数式を入力したい。...
-
【マクロ】左のブックと右のブ...
-
エクセルの関数について
-
エクセルのリストについて
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】excelファイルを開く...
-
【関数】3つのセルの中で最新...
-
エクセルの複雑なシフト表から...
-
【マクロ】【画像あり】❶ブック...
-
LibreOffice Clalc(またはエク...
おすすめ情報