IMEStatus関数
IMEStatus関数は、現在アクティブになっているアプリケーションのIME(Input Method Editor、日本語入力システムなど)の状態を示す整数値を返します。
IMEがオン(日本語入力モード)なのか、オフ(半角英数モード)なのかなどをプログラムで判断する際に使用します。
IMEStatus関数の構文
引数はありません。
- IMEStatus 関数は、現在のIMEの状態を示すInteger型の値を返します。
- 戻り値は、IMEのオン/オフ状態だけでなく、日本語入力のモード(ひらがな、カタカナ、半角カナなど)も示します。
- 主な戻り値とその意味は以下の通りです。
値 定数 説明 0 vbIMEModeNoControl IMEは制御不能な状態、または使用できない状態。IMEがインストールされていない、またはアプリケーションがIMEをサポートしていない場合など。 1 vbIMEModeOn IMEがオンの状態(日本語入力モード)。具体的なモードは通常、ひらがな。 2 vbIMEModeOff IMEがオフの状態(半角英数モード)。 3 vbIMEModeDisable IMEがディセーブル(無効化)の状態。通常は強制的に英数モード。 4 vbIMEModeHiragana IMEがオンで、ひらがな入力モード。 5 vbIMEModeKatakana IMEがオンで、全角カタカナ入力モード。 6 vbIMEModeRadical IMEがオンで、半角カタカナ入力モード。 7 vbIMEModeAlpha IMEがオンで、全角英数入力モード。 8 vbIMEModeInclude IMEがオンで、ひらがな優先(全角文字変換可能)モード。 9 vbIMEModeHangul IMEがオンで、ハングル入力モード。 10 vbIMEModeFullShape IMEがオンで、全角文字入力モード。 11 vbIMEModeNative IMEがオンで、ネイティブ言語(日本語ならひらがな)入力モード。 12 vbIMEModeKatakanaHalf IMEがオンで、半角カタカナ入力モード(vbIMEModeRadicalと同じ)。
- この関数は、ユーザーの入力モードに応じて処理を切り替えたい場合や、特定の操作を行う前にIMEの状態を強制したい場合(ただし、IMEの状態変更には SendKeys など間接的な方法が必要になることが多い)に利用できます。
- IMEStatus関数自体はIMEの状態を変更する機能は持っておらず、現在の状態を取得するのみです。
IMEStatus関数の使用例
Sub CheckIMEStatus()
Dim imeResult As Integer
Dim statusText As String
imeResult = IMEStatus ' 現在のIMEの状態を取得
Select Case imeResult
Case vbIMEModeNoControl
statusText = "IMEは制御不能/利用不可です。"
Case vbIMEModeOn
statusText = "IMEはオン (ひらがな) です。"
Case vbIMEModeOff
statusText = "IMEはオフ (半角英数) です。"
Case vbIMEModeDisable
statusText = "IMEは無効化されています。"
Case vbIMEModeHiragana
statusText = "IMEはひらがなモードです。"
Case vbIMEModeKatakana
statusText = "IMEは全角カタカナモードです。"
Case vbIMEModeRadical
statusText = "IMEは半角カタカナモードです。"
Case vbIMEModeAlpha
statusText = "IMEは全角英数モードです。"
Case vbIMEModeInclude
statusText = "IMEはひらがな優先モードです。"
Case vbIMEModeHangul
statusText = "IMEはハングルモードです。"
Case vbIMEModeFullShape
statusText = "IMEは全角文字モードです。"
Case vbIMEModeNative
statusText = "IMEはネイティブ言語モードです。"
Case vbIMEModeKatakanaHalf
statusText = "IMEは半角カタカナモードです。(別名)"
Case Else
statusText = "不明なIMEステータス: " & imeResult
End Select
MsgBox "現在のIMEの状態: " & statusText, vbInformation, "IMEStatus 関数例"
End Sub
- このコードでは、IMEStatus 関数を呼び出し、その戻り値を imeResult 変数に格納しています。
- Select Case ステートメントを使って、imeResult の値に応じてメッセージボックスに表示するテキストを切り替えています。これにより、ユーザーにとって分かりやすい形で現在のIMEの状態が示されます。
- 各 Case には、VBAに定義されているvbIMEModeプレフィックスの定数を使用しており、コードの可読性を高めています。
- このプロシージャを実行すると、実行時のIMEの状態に応じたメッセージが表示されます。例えば、IMEがオフの状態(タスクバーの「A」マーク)で実行すると「IMEはオフ (半角英数) です。」と表示され、IMEがオンの状態(タスクバーの「あ」マーク)で実行すると「IMEはオン (ひらがな) です。」と表示されることが多いです。
※本記事の作成にあたっては、生成AI(Gemini)を活用し一部の文章作成を行っています。最終的な内容は人間による確認・編集を経て掲載しています。
同じテーマ「VBA関数」の記事
CreateObject関数
DoEvents関数
Environ関数
GetObject関数
IMEStatus関数
InputBox関数
MsgBox関数
Partition関数
QBColor関数
RGB関数
Shell関数
新着記事NEW ・・・新着記事一覧を見る
VBA開発の標準化を実現する共通プロンプトのすすめ|生成AI活用研究(2025-06-14)
生成AIと100本ノック 29本目:画像の挿入|生成AI活用研究(6月13日)
Excelワークシート関数全一覧(最新版)|Excelリファレンス(6月12日)
エクセル関数辞典 AI版|エクセル入門(6月10日)
生成AIと100本ノック 28本目:シートをブックに分割|生成AI活用研究(6月8日)
生成AIと脱Excelの時代:ブラックボックスと共に進む知的変革|生成AI活用研究(2025-06-08)
生成AIと100本ノック 27本目:ハイパーリンクのURL|生成AI活用研究(6月7日)
生成AIと100本ノック 26本目:ファイル一覧作成|生成AI活用研究(6月6日)
AI時代のプログラミング再考:記述の自由と知の民主化|生成AI活用研究(2025-06-06)
Excel×スプレッドシート連携:HTTP GETで学ぶGAS API設計入門|生成AI活用研究(2025-06-04)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.変数宣言のDimとデータ型|VBA入門
3.繰り返し処理(For Next)|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.RangeとCellsの使い方|VBA入門
6.FILTER関数(範囲をフィルター処理)|エクセル入門
7.メッセージボックス(MsgBox関数)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。