1 件の投稿を表示中 (合計 4 個)
  • 作成者
    投稿
  • #6350
    nukesaku
    メンバー

    サブフォルダー以下すべてのファイルにマクロを実行したいのですが、どのような方法がありますか?
    イメージ的には「ファイルからの置換」で検索・置換後の文字列の代わりにマクロを指定するような感じです。

    #6352
    takuya
    参加者

    takuyaです。

    もちろん可能です。FileSystemObjectを使ってみてください。
    ただし、マクロの記録で記録したマクロでは不十分ですので、自分でマクロを記述する必要がありますね。

    PHP・Python・Perl・RubyなどActiveSctiptやJScript・VBScriptなどのWSHが使えます。

    マクロでやりたい事というのはどのようなことなのでしょうか。具体的に記載していただけますか

    #6353
    nukesaku
    メンバー

    takuyaさんありがとうございます。
    早速以下を試してみましたところ、ファイルのオープンはできているようです。(なぜか最後のファイルだけが開かれるが……)

    var fso = new ActiveXObject(“Scripting.FileSystemObject”);
    var folder = fso.GetFolder(“C:tempXML”);
    var files = new Enumerator(folder.Files);
    while (!files.atEnd()) {
    editor.OpenFile(files.item());
    files.moveNext();
    }

    他力本願ですが、
    1.開いたファイルに任意のマクロを指定する
    2.ターゲットのファイルパスをGetFolderに渡すインターフェイス
    をどうすれば良いものかと。。。

    ReplaceInFilesなんていうのもあるのですね。

    #6354
    nukesaku
    メンバー

    とりあえず思っていた結果が得られましたが、
    もう少しスマートにできないものでしょうか。。。

    var fso = new ActiveXObject(“Scripting.FileSystemObject”);
    var folder = fso.GetFolder(“C:tempXML”);
    var files = new Enumerator(folder.Files);
    while (!files.atEnd()) {
    editor.OpenFile(files.item(),0,eeOpenAllowNewWindow|eeOpenDetectAll);
    rp();
    document.Save(files.item());
    document.close();
    files.moveNext();
    }

    rp()
    {
    //マクロの内容

    }

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