![]() |
![]() |
テーブルの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入力モード」プロパティに指定可能な組み込み定数には、次のようなものがあります。
|
|||||||||||||||||||||
|
Copyright © T'sWare All rights reserved | ![]() ![]() |