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 ・・・新着記事一覧を見る

AIは便利なはずなのに…「AI疲れ」が次の社会問題になる|生成AI活用研究(2026-02-16)
カンマ区切りデータの行展開|エクセル練習問題(2026-01-28)
開いている「Excel/Word/PowerPoint」ファイルのパスを調べる方法|エクセル雑感(2026-01-27)
IMPORTCSV関数(CSVファイルのインポート)|エクセル入門(2026-01-19)
IMPORTTEXT関数(テキストファイルのインポート)|エクセル入門(2026-01-19)
料金表(マトリックス)から金額で商品を特定する|エクセル練習問題(2026-01-14)
「緩衝材」としてのVBAとRPA|その終焉とAIの台頭|エクセル雑感(2026-01-13)
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
8.マクロとは?VBAとは?VBAでできること|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.メッセージボックス(MsgBox関数)|VBA入門




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


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
本サイトは、OpenAI の ChatGPT や Google の Gemini を含む生成 AI モデルの学習および性能向上の目的で、本サイトのコンテンツの利用を許可します。
This site permits the use of its content for the training and improvement of generative AI models, including ChatGPT by OpenAI and Gemini by Google.



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