1 件の投稿を表示中 (合計 5 個)
  • 作成者
    投稿
  • #11200
    tom86
    参加者

    お世話になっております。
    マクロについて何点か教えてください。

    毎日、Windowsアプリから何枚も帳票を出力して印刷したり
    それらをメールしたりして無駄に時間を消費しています。
    部分的にでも自動化できないか、
    Emedirorのマクロを使って試行錯誤しています。

    Windowsシステムを起動、ログインしてメニュー、
    サブメニューをクリックして該当の機能が
    表示されるところまでできました。

    ①該当機能のテキストボックスに
    日本語を入力したいのですが方法はありますか。
    ちなみにログイン時のID/PWは以下でセットできました。
    shell.SendKeys(“hoge”);

    document.selection.Text = “あいうえお”;

    document.write(“EmEditor supports macros.”);
    と記述して実行するとアクティブなWindowsアプリに
    表示されず、Emeditorに表示されます。

    ②マクロ記録中に
    Alt + Tab
    で画面を切り替えると以下のコートとなり、
    実行するとエラーになります。
    shell.SendKeys(“{ALT DOWN){ALT UP}”);

    ③そもそもテキストエディタに求めることが間違いでしょうか。
    自作アプリなら処理をWebサービスにして自動化するなど
    手段があるのですが、メーカーアプリなのでできません。
    何か他に良い方法があれば教えてください。

    Windows7 32bit
    Emeditor 11.0.5
    .NET Framework3.5

    よろしくお願いします。

    #11202
    Yutaka Emura
    キーマスター

    tom86 様

    いつも EmEditor Professional をお使いいただき、誠にありがとうございます。

    document.selection.Text = “あいうえお”;

    document.write(“EmEditor supports macros.”);

    というのは、常に EmEditor にテキストが表示されます。

    他のウィンドウに文字を入力したい場合には、

    wnd = shell.FindWindow( “”, “Calculator” );
    wnd.SetForeground();
    Sleep( 1000 );
    shell.SendKeys( “ABC” );

    というようにして、他のウィンドウをアクティブにしてから、キー入力を送ることになります。

    うまくマクロを組めば、EmEditor から自動化を行うことも可能ですが、たとえば、アクティブなウィンドウを設定したり、待ち時間を調節したり、といった細かい点に注意する必要があります。マウスを使っての操作を記録する場合、マウス カーソルの位置も記録されるため、毎回同じように動作するとは限らないため、記録されたマクロを、上記の FindWindow などを使って、別の方法に変えることも必要なことがあります。

    詳しくは、

    http://jp.emeditor.com/help/macro/shell/find_window.htm

    http://jp.emeditor.com/help/macro/shell/send_keys.htm

    を参照していただけると幸いです。

    どうぞよろしくお願い申し上げます。

    #11209
    tom86
    参加者

    江村様

    ご回答ありがとうございます。
    返信が遅くなり申し訳ございません。

    SendKeysでは日本語は入力できないですよね?
    日本語を入力するにはクリップボードを使うなど、何かしら別の方法が必用なのでしょうか。

    初歩的な質問ばかりですみません。

    #11211
    Yutaka Emura
    キーマスター

    tom86 様

    いつも EmEditor Professional をお使いいただき、誠にありがとうございます。

    確かに、ご指摘の通り、SendKeys はタイプするキーをそのまま指定するため、日本語の場合、IME を使って入力するキーをそのまま羅列する必要があり、簡単にはできません。

    クリップボードを使用する場合は、以下のようにして書くといいかと思います。

    wnd = shell.FindWindow( “”, “Untitled – メモ帳” );
    wnd.SetForeground();
    Sleep( 1000 );
    clipboardData.setData( “Text”, “テスト” );
    shell.SendKeys( “^V” );

    ここで ^V というのは、貼り付けコマンドのショートカット Ctrl + V のことで、アプリケーションによって異なります。
    ご参考いただけると幸いです。

    どうぞよろしくお願い申し上げます。

    #11212
    tom86
    参加者

    江村様

    ありがとうございます。
    試してみます。

1 件の投稿を表示中 (合計 5 個)
  • このトピックに返信するにはログインしてください。