#786 テーブルのIME入力モードを一括変更するには? テーブル、VBA

カレントデータベース内のすべてのテーブルおよびフィールドを探索し、「IME入力モード」プロパティの値を「コントロールなし」に一括変更するプログラム例です。これを応用すれば他のモードに一括変更することもできます。

ここでは、処理の外枠としてカレントデータベース内のすべてのテーブルの定義を列挙します(For Each tdf In dbs.TableDefs)。システムテーブル(AttributesがdbSystemObject)と隠しテーブル(AttributesがdbHiddenObject)は除外した上で、さらにそれぞれのテーブル内のすべてのフィールド定義を列挙します(For Each fld In tdf.Fields)。

そして、各フィールドの『IMEMode/IME入力モード』プロパティに組み込み定数「acImeModeNoControl/コントロールなし」を代入します。

その際、IME入力モードプロパティを持たないフィールド(たとえば”数値型”フィールドなど)にその代入を行おうとするとエラーが発生します。エラールーチンでそれを例外処理することもできますが、ここでは「On Error Resume Next」とすることですべてのエラーを無視するようにしています。

Dim dbs As Database
Dim tdf As TableDef
Dim fld As Field

'IME入力モードプロパティを持たないフィールドのエラーは無視
On Error Resume Next

Set dbs = CurrentDb
For Each tdf In dbs.TableDefs
  With tdf
    If ((.Attributes And dbSystemObject) Or _
        (.Attributes And dbHiddenObject)) = 0 Then
      For Each fld In tdf.Fields
        'IME入力モードをコントロールなしに設定
        fld.Properties("IMEMode") = acImeModeNoControl
      Next fld
    End If
  End With
Next tdf


VBAで「IME入力モード」プロパティに指定可能な組み込み定数には、次のようなものがあります。
acImeModeNoControl コントロールなし
acImeModeOn オン
acImeModeOff オフ
acImeModeDisable 使用不可
acImeModeHiragana ひらがな
acImeModeKatakana 全角カタカナ
acImeModeKatakanaHalf 半角カタカナ
acImeModeAlphaFull 全角英数
acImeModeAlpha 半角英数
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved