VBA関数
IMEStatus関数

Excelマクロで必須のVBA関数を入門・初級・初心者向けに詳細解説
公開日:2013年5月以前 最終更新日:2025-06-15

IMEStatus関数


IMEStatus関数は、現在アクティブになっているアプリケーションのIME(Input Method Editor、日本語入力システムなど)の状態を示す整数値を返します。
IMEがオン(日本語入力モード)なのか、オフ(半角英数モード)なのかなどをプログラムで判断する際に使用します。



IMEStatus関数の構文

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関数の使用例

次のコード例では、IMEStatus 関数を使って現在のIMEの状態を取得し、メッセージボックスで表示します。

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)を活用し一部の文章作成を行っています。最終的な内容は人間による確認・編集を経て掲載しています。


Office VBA リファレンス IMEStatus関数

※VBA関数一覧
マクロVBA関数の一覧と解説です、どんな関数があるかは一度は確認しておくとをお勧めいたします。どんな関数があるだけでも知っておけば、詳細の使い方は実際に使うときに調べても良いでしょう。文字列操作…34 分岐…3 型変換…14 データ判定…10 日付時刻…20 配列…6 ファイル操作…14 数学/財務…28 その他……



同じテーマ「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コードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ