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

Gemini CLIの徹底解説:AIをターミナルから使いこなす|生成AI活用研究(2025-07-03)
Gemini CLIとPowerShellでVBAerのAI活用を加速する実践ガイド|生成AI活用研究(2025-07-02)
「Gemini CLI」によるExcel自動化フレームワーク:実践ガイド|生成AI活用研究(2025-07-01)
AI(Gemini)とエクセル数式対決 その3|生成AI活用研究(2025-06-24)
不合理の砦|AIが計算を終えた場所から、人間の価値が始まる|生成AI活用研究(2025-06-23)
生成AIはExcelの複雑な数式を書けるのか?|AIとの対話から学ぶ協業のリアル|生成AI活用研究(2025-06-22)
日時データから日付ごとの集計(UNIQUE,SUMIFS,GROUPBY)|エクセル雑感(2025-06-20)
AI時代の働き方革命:オンリーワン戦略 ― 属人化で搾取されない労働者に|生成AI活用研究(2025-06-20)
VBA開発の標準化を実現する共通プロンプトのすすめ|生成AI活用研究(2025-06-14)
生成AIと100本ノック 29本目:画像の挿入|生成AI活用研究(6月13日)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.変数宣言のDimとデータ型|VBA入門
3.繰り返し処理(For Next)|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.RangeとCellsの使い方|VBA入門
6.FILTER関数(範囲をフィルター処理)|エクセル入門
7.セルのクリア(Clear,ClearContents)|VBA入門
8.メッセージボックス(MsgBox関数)|VBA入門
9.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
10.マクロとは?VBAとは?VBAでできること|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」をお願いいたします。
本文下部へ