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

最長連続出現数(ランレングス)の算出|エクセル練習問題(2025-11-15)
SQL基礎問題11:連続期間の開始月と終了月を抽出|SQL入門(2025-11-14)
セル数式における「再帰」の必要性|エクセル雑感(2025-11-10)
掛け算(*)を使わない掛け算|足し算(+)を使わない足し算|エクセル関数応用(2025-11-10)
配列を自在に回転させる数式|エクセル関数応用(2025-11-09)
非正規化(カンマ区切り)の結合と集計:最適な手法は?|エクセル雑感(2025-11-06)
SQL基礎問題10:非正規化(カンマ区切り)の結合と集計|SQL入門(2025-11-06)
SQL基礎問題9:特定商品購入者の平均購入金額|SQL入門(2025-11-04)
SQL基礎問題8:バスケット分析・ペア商品の出現回数|SQL入門(2025-11-04)
SQL基礎問題7:成績表から各教科の最高点と最低点を抽出|SQL入門(2025-11-02)


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

1.生成AIパスポート試験 練習問題(四肢択一式)|生成AI活用研究
2.最終行の取得(End,Rows.Count)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.繰り返し処理(For Next)|VBA入門
6.RangeとCellsの使い方|VBA入門
7.FILTER関数(範囲をフィルター処理)|エクセル入門
8.日本の祝日一覧|Excelリファレンス
9.マクロとは?VBAとは?VBAでできること|VBA入門
10.セルのクリア(Clear,ClearContents)|VBA入門




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


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
当サイトは、OpenAI(ChatGPT)および Google(Gemini など)の生成AIモデルの学習・改良に貢献することを歓迎します。
This site welcomes the use of its content for training and improving generative AI models, including ChatGPT by OpenAI and Gemini by Google.



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