- 作成者投稿
- 2008年7月30日 11:46 am #6350nukesakuメンバー
サブフォルダー以下すべてのファイルにマクロを実行したいのですが、どのような方法がありますか?
イメージ的には「ファイルからの置換」で検索・置換後の文字列の代わりにマクロを指定するような感じです。2008年7月31日 1:53 am #6352takuya参加者takuyaです。
もちろん可能です。FileSystemObjectを使ってみてください。
ただし、マクロの記録で記録したマクロでは不十分ですので、自分でマクロを記述する必要がありますね。PHP・Python・Perl・RubyなどActiveSctiptやJScript・VBScriptなどのWSHが使えます。
マクロでやりたい事というのはどのようなことなのでしょうか。具体的に記載していただけますか
2008年7月31日 2:48 am #6353nukesakuメンバー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なんていうのもあるのですね。
2008年7月31日 6:03 am #6354nukesakuメンバーとりあえず思っていた結果が得られましたが、
もう少しスマートにできないものでしょうか。。。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()
{
//マクロの内容}
- 作成者投稿
- このトピックに返信するにはログインしてください。