![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
はじめて質問をします。 monnomestと申します。
vbaのマクロを実行して、シートを作成するwsh(by jscript)を作成しました。そのシートを保存する際にchrdirで保存場所を明示したいのですが、指定の仕方が分かりません。(wshを置いておくdirectoryにしたい。)
ChDirは、エクセルのmethodではないため、以下のようでは、エラーになりますし、
var objXL = WScript.CreateObject("Excel.Application");
objXL.Visible = true;
with(objXL){
var tar=workbooks.Open(scriptpath+vba);
try{
Run("'"+vba+"'!'"+command+"'");
}catch(e){
}
tar.Close();
ChDir("xxxxxxx"); ← とは出来ない。
}
もちろん、wshを使わず、vbaをそのまま立ち上げればこんなことする必要はないのですが、
諸々の事情がありまして、wshで行えれば都合がよいのです。
objectが何なのかが分かれば解決でしょうか。
どなたかご教示いただけますでしょうか。
No.3ベストアンサー
- 回答日時:
こんばんは。
あまり、私が、ごちゃごちゃ言ってもしょうがないですね。
ちょっと、度が過ぎたかもしれません。不適切な言葉があったら、申し訳ありません。
ChDir で直接影響を受けるのは、本来、GetOpenFilename等の、この手のダイアログだけだと思います。保存する場合に、ChDir は不要です。単に、ディレクトリを書かなくて済むだけです。
もし、あえて変えるなら、[Application.]DefaultFilePath で規定になっているフォルダを変えればよいのです。そこを一次的に変えれば、開く時には、そこを開けますし、保存する時も、そこになります。
> もし、あえて変えるなら、[Application.]DefaultFilePath で規定になっているフォルダを変えればよいのです。
なるほど、そうですよね。納得です。
ありがとうございました。
No.2
- 回答日時:
こんにちは。
ここのログの範囲だけでは、ChDir は必要ないように思います。その必然性が分からないです。何か、基本的な誤解が生じているようです。
>保存ダイアログを開く際にそのユーザーがクリックしたwsfのdirectoryが開く。」というのが目的です。
どのアプリケーションでも、ユーザーにフォルダを選ばせる時に、当初は、[使用ユーザー]のMy Documents やC:\から開くのが一般的だと思うのです。そこで、ダイアログを開いて、自由選択させて、ファイルを保存するわけです。
ブック tar.Close してからなら、ChDir ではなく、FileSystemObject で、MoveFileメソッドを行えばよいのですが、それは、常識的ではありません。
wsfであろうがなかろうが、ChDir というのは、アプリケーションの対象のカレントディレクトリが変わるという目的で、VBAの中で通用する話で、VBAの外に出たら、保存のフォルダは直接関係ありません。通常は、フォルダ名を入れないで保存や開くことをする以外は、ChDir は使いません。
ダイアログは、JavaScript やVBScipt なら、CreateObject("WScript.Shell") のSpecialFolders オブジェクトなどで出して、フォルダを取得して、それを保存フォルダの変数、例えば、#1 の newdir に渡せば良いわけでは?
再びありがとうございます。
> 当初は、[使用ユーザー]のMy Documents やC:\から開くのが一般的だと思うのです。
ぅーん。ただ、チームで共同作業をしていて、サーバー内のすでに決まっているdirectoryに保存する必要がある場合、curdirを指定してしまいたいこともあると思います。たとえば毎月ちがうしかも階層の深いところにあるdirectoryに収めるのだけれど、vbaに参照情報をつけたりするのは、スマートでないと思うわけで、軽いwsfを予定の保存先においてそこに完成したシートを保存したかっただけです。
(別のパターンでcsvを加工して、展開させるwsf+vbaを作って活用していますが、そのcsvのdirectoryにvba内でchdirしています。しかし、質問させていただいているケースでは、netからの情報を自動集計するvbaなので、元データもない。)
でも、考えてみたら書類名は、ある程度決まっているものだし、 Activeworkbook.SaveAs (scriptdir+'newname');
でいいんでした。それを発見できて助かりました。
(別の問題と混ざり合ってターゲットがずれていってしまったようです。)
ところで、必然性はともかく、ChDirのやりようはあるかの疑問は残るのですが、、、
No.1
- 回答日時:
こんばんは。
> ChDir("xxxxxxx"); ← とは出来ない。
>objectが何なのかが分かれば解決でしょうか。
これを動かすには、Visual Basic For Application のタイプライブラリを呼び出しておかないと動かないかもしれませんが、必要あるのでしょうか?
>そのシートを保存する際にchrdirで保存場所を明示したいのですが、指定の仕方が分かりません。
単に、別のマクロを作って、command2 をRunさせるか、
Run("'"+vba+"'!'"+command2+"'"); ←これで動くかは分かりませんが。
保存するなら、以下のようなすれば良いです。
//
newdir ="x:\\xxxxxx\\";
DisplayAlerts = false;
tar.SaveAs (newdir + tar.Name);
DisplayAlerts = true;
tar.Close False;
//
この回答への補足
回答ありがとうございます。質問内容が明確でなくてすみません。
wsfで実行するのは、シートの作成までで、
あくまで「ユーザーに多少の加工の後に好きな場所に好きな名前で保存してもらいたく、保存ダイアログを開く際にそのユーザーがクリックしたwsfのdirectoryが開く。」というのが目的です。
ご指摘のとおりVBAにアクセスすればChDirを扱えると思うのですが、
「CreateObject("Excel.Application")のようなものが必要かかな」
というところで終わってしまって、、、、
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel-VBAの「しばらくお待ちください」のダイアログが自動的に閉じない 2 2023/05/24 15:31
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) 複数指定セルの可視セルのみを別シートに転記するVBAについて 2 2022/05/27 21:19
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Gom PlayerでCaptureに保存され...
-
ブックマークの違法性。
-
難しいです。
-
ダウンロードすると画像サイズ...
-
【FireFox】リンク先の画像をク...
-
media player classic 画像キャ...
-
Firefox 拡張 Svae File・・・
-
ホームページ・ビルダーのデー...
-
LISMO(リスモ)に取り込...
-
PhotoshopCS5でWeb用に保存のア...
-
WEB上のhtmリンクを開くと「保...
-
Firefoxで画像を保存する良いア...
-
Google Chrome の最新版を使っ...
-
パワーポイント2007を20...
-
photoshopで保存先が記憶されま...
-
Leawo Blu-ray Playerをダウン...
-
ブックマークを送りたいです
-
コクヨのフリーソフト、合わせ...
-
Google Chrome のお気に入りの...
-
ダウンロードが99%で止まって...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダウンロードすると画像サイズ...
-
google chrome ブックマークの...
-
PhotoshopCS5でWeb用に保存のア...
-
media player classic 画像キャ...
-
ホームページ・ビルダーのデー...
-
Gom PlayerでCaptureに保存され...
-
Firefoxテーマの保存先について
-
LISMO(リスモ)に取り込...
-
WEBページの全てを保存させない...
-
クロームの、パスワードの保存...
-
ブックマークの違法性。
-
画像、イラストの著作権につい...
-
firefoxでパスワードを保存でき...
-
あの Spotifyの曲を USBに保存...
-
Firefoxで画像をダウンロードす...
-
macでPDFが別名保存できない
-
fire fox3に変えてから画像の保...
-
紹介していただいたソフトを入...
-
IE9のダウンロード通知バーで名...
-
VBAでWEBページをしたい
おすすめ情報