◀一般トップへ
  • 6989 jsマクロが実行できない
    • 6990 Re:jsマクロが実行できない
      • 6991 Re2:jsマクロが実行できない
  • [6989] jsマクロが実行できない ひろ 2009年07月03日 18:32

    拡張子.jsのマクロが実行できずに困っています。(環境は後述)

    目的は、「指定した文字列の出現頻度をカウントするマクロ」を作成したいのです。

    マクロを作成するため、http://d.hatena.ne.jp/language_and_engineering/20081021/1224511689を参考に、そのページに書かれているサンプル命令である
    Editor.InsText("Hello,World!");
    の命令を書いたHelloWorld.jsというファイルを作り、マクロ登録後に「登録済みマクロ」から実行すると「マクロ5(HelloWord.js)の実行に失敗しました。」
    と表示されます。「名前を指定してマクロを実行」とすると「ファイルを開けませんでした。(ファイル名)」と表示されます。

    JScriptがVisualStudio(以下VS)の関係でおかしくなったのかと思い、JavaScript5.7の導入を試みましたが、新しいバージョンが導入済みで不要という旨のメッセージ表示されました。

    キーマクロは記録でき、再生できました。PPA.DLL導入後は拡張子.ppaのスクリプトも実行できました。

    上記ファイル内にはCOM呼び出しが無いため、SarakuでJScriptControllerを呼び出せていれば問題ないとは
    思いますが、あらゆるマクロ(.js)を作っても上記と同じ「ファイルが開けない」というメッセが出るので、
    JScriptControllerを用いたスクリプト呼び出し部分が機能してないのではないかと頭に?を浮かべております。

    小生の方法で間違いがありそうでしたら、ご連絡いただきたく存じます。

    P.S コードを次の通り変更し、HelloWorld2.jsとしてもだめでしたが、拡張子を.macに変更したところうまく機能しました。
    S_InsText("Hello,World!");
    -------
    ・Windows Xp Pro. SP3
    ・Sakura Editor 1.6.3.0および1.6.4.0
    (・VisualStudio2003.net Pro. + 同VS2008 Pro.導入済み)
    • [6990] Re:jsマクロが実行できない syat 2009年07月04日 07:45

      ▼ ひろさん
      少なくとも私の環境では同じやり方で実行できるので、手順が違うとか、エディタの根本的な不良ではないと思っています。

      JScriptがシステムに登録されているか確かめるため、以下を確認していただけますでしょうか。
      1. WScript.Echo("テスト"); という内容のファイルを作成(拡張子js)
      2.コマンドプロンプトから以下を実行
      cscript.exe ファイル名
      JScriptが正しく登録されていれば「テスト」と表示されるはずです。

      それと、たまにやってしまうことで、実行しようとしているjsファイルをサクラエディタや他のソフトで開いていて、読み取り不可の排他がかかっていたときに読み込み失敗するというのがあります。

      • [6991] Re2:jsマクロが実行できない ひろ 2009年07月04日 18:25

        ▼ syatさん
        ご回答ありがとうございます。syatさんが書かれた通りやってみたところ、

        Microsoft (R) Windows Script Host Version 5.7
        Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

        入力エラー: ファイル拡張子 ".js" を持つスクリプト エンジンはありません。

        と表示されました。

        このエラーを検索したところ、次のようにレジストリを修正したらいいことがわかり、実行したところ、サクラエディタでも.jsを実行できるようになりました。
        ありがとうございました。
        [修正箇所]
          [HKEY_CLASSES_ROOT\.JS]
          @="JSFile"
          "Content Type"="application/x-javascript"
        参照:
        http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=9981&forum=6

        ※レジストリが壊れて実行できなくなるような仕組みになさらないでほしいです>MS様。