忍者ブログ

ぼんぷろぐ

InDesign、イラレ、フォトショ(CS6 Win)の勉強中。。。(旧まとめいみブログ)

[イラレ]
イラレで「プレーンテキストとしてペースト」と「現在のレイヤーにペースト」(AutoHotkey)

「プレーンテキストとしてペースト」の方は前回ちょっと書いたんですが、今回はやり方をかえて、ExtendScriptっぽくcontentsにぶっこんじゃいましょう。これならクリップボードも書き換えずに済みます。
^!v::
    app:=ComObjActive("Illustrator.Application")
    sel:=app.Selection
    If (ComObjType(sel,"Name")="TextRange"){
        cc=%clipboard%
        If cc!=
        {
            sel.Contents:=cc
        }
    }
Return

んで、これは基本的にテキスト選択時に使用するものってことにする。そうじゃないときは、この同じCtrl+Alt+Vのコマンドを別のペーストに使いましょう。限りあるキーコマンドを大切に。

他にペースト系でキーボードショートカットが欲しかったのと言えば、「現在のレイヤーにペースト」です。私は普段、レイヤーパネルメニューにある「コピー元のレイヤーにペースト」をONにして作業してるので、これをOFFにして、ペーストして、またONに戻すって操作を一発でやりたい。
これをExtendScriptで書くとこんな感じ

    app.preferences.setBooleanPreference("layers/pastePreserve",false);
    app.paste();
    app.preferences.setBooleanPreference("layers/pastePreserve",true);

これをAutoHotkeyスクリプトに書き換えようと思ったのですが、COMオブジェクトにもSetBooleanPreferenceメソッドはたしかにあるのですが、第2引数がBoolean型じゃないと受け付けてくれない(0も"False"もダメ)。そしてなんとAHKスクリプトにはBoolean型が存在しない!

しかたないのでまたDoJavaScriptに登場してもらいます。


^!v::
    app:=ComObjActive("Illustrator.Application")
    sel:=app.Selection
    If (ComObjType(sel,"Name")="TextRange"){
        cc=%clipboard%
        If cc!=
        {
            sel.Contents:=cc
        }
    }
    Else
    {
    js=
    (
    app.preferences.setBooleanPreference("layers/pastePreserve",false);
    app.paste();
    app.preferences.setBooleanPreference("layers/pastePreserve",true);
    )
   app.DoJavaScript(js)
    }
Return


できあがりー
これでCtrl+Alt+Vがテキスト選択時には「プレーンテキストとしてペースト」、テキスト非選択時には「現在のレイヤーにペースト」になりました。
PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

プロフィール

あるふぁ(仮)
InDesignで新聞組版のようなことをしてる人です。

InDesignスクリプトについて

つくったInDesignスクリプトのまとめ

twitter

フリーエリア