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

8 件のコメント:

  1. はじまして。
    こちらの記事が役に立ちました。
    これ以外にも変換モードが無変換になったりといろいろな現象が出ているため、LeaveCell、LostFocusなどのイベントでもIMEモードを再設定することでなんとか制御しております。

    返信削除
  2. コメントありがとうございます。
    お役に立てたようで非常に嬉しく思います。

    利用しているIMEの種類にも影響されることがあったり、
    なかなか完全に解決できるとは限らないのが難しいところですよね。

    返信削除
  3. はじめまして。
    私もこちらの記事が役にたちました。
    お陰で解決できました。ありがとうございます。

    返信削除
  4. コメントありがとうございます。
    お役に立てたようで何よりです!

    返信削除
  5. 初めまして。
    今更ながらDenpyoManをWindows7上で動作させるのに四苦八苦しています。

    Windows7上でDenpyoManのセルに日本語が入力できない(IMEがONにならない)事象で
    ひっかかっておりました。

    http://download.grapecity.com/patches/DenpyoMan/dnpm15fix071204.txt

    ↑Windows7対策として、こちらの暫定版リリースのDLLを入れていたのですが、
    これを古いものに戻したら、日本語入力できるようになりました。

    ブログ主様は、Windows7向けの環境として、
    上記の暫定版DLLは使われていますか?
    もし使われていなくてWindows7で実績があるのでしたら、
    私も使わないようにしたいと思っております。

    返信削除
  6. コメントありがとうございます!

    自分が試したのが転職前の会社だというのもあり、
    記憶があいまいになっているのですが、
    確か個別パッチはあてていなかったように思います。
    SPなどの大規模パッチは間違いなくあてていたのですが・・・。

    はっきりと答えられなくて申し訳ないです。

    返信削除
  7. 初めまして。

    同じ環境(Windows 7 + VB6 + DenpyoMan 1.5J)でVBが落ちてしまうという現象に悩まされてます。

    原因はDenpyoManなのですが、DenpyoManが組み込まれた画面を複数(6画面以上)立ち上げると、DenpyoManをロードする所でエラーとなりVBが落ちてしまいます。
    最新パッチを当てても状況は変わらず・・・同じ様な現象は起きましたか?
    もし起きていて対策等があればご教授下さい。。。。宜しくお願いします。

    返信削除
  8. コメントありがとうございます。
    残念ながら、もう手元に検証できる環境もなく、また同様の現象に遭遇したこともありません・・・。

    IDEごと落ちるというのであれば、何かしらメモリに残留しているなども考えられますので、WinDbg などのツールで調査してみるのもいいかも知れません。

    すいません、お役に立てそうにありませんでした・・・。

    返信削除