2011年1月12日水曜日

Windows 7 + VB6 + DenpyoMan 1.5J でIME切替が思うようにならない場合の対処

そもそもサポート終了というか販売終了してからどれくらいたっているという話はおいておいて。

Windows 7 環境で VB6 + DenpyoMan の組み合わせを利用していると、IME=全角なDenpyoManセルから、別のTextBoxなどにマウスでフォーカス移動し、その後DenpyoMan上のセルへマウスでフォーカスを戻した際、IMEが半角アルファベットになってしまう現象が発生する事があるんだよね。

Vistaからの対応として、EnterEdit時にIMEモードを再設定してくれというナレッジはGrapeCityさんから出ているけどWindows7になった場合これだけでは不十分で。ちょっと時間とって試してみたら、下記のソースで対応できたっぽい。

Dim orgIMEMode As Variant

'IMEモードを再設定
orgIMEMode = objDenpyo.TRow(.ActiveCellKey).Details(dpTextIMEMode)
objDenpyo.TRow(.ActiveCellKey).Details(dpTextIMEMode) = dpIMEOff
objDenpyo.TRow(.ActiveCellKey).Details(dpTextIMEMode) = orgIMEMode

誰の役にも立たない気がするけどw