teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2016/11/10 04:19

投稿

ynakano
ynakano

スコア1894

answer CHANGED
@@ -13,11 +13,11 @@
13
13
  ```
14
14
  ※どこに書くかは適宜判断して下さい。
15
15
 
16
+ そして
16
- して「ADO.SaveToFile SAVEPATH & "/" & TEXTFILE, 2」は以下のように書き換えてください。
17
+ 流れとしては、SetCurrentDirectory関数でUNCパス上のディレクトリに移動して、そこにファイルを書き出すことになります。「ADO.SaveToFile SAVEPATH & "/" & TEXTFILE, 2」は以下のように書き換えてください。
17
18
  ```ここに言語を入力
18
19
  ADO.SaveToFile TEXTFILE, 2
19
20
  ```
20
- 流れとしては、SetCurrentDirectory関数でUNCパス上のディレクトリに移動して、そこにファイルを書き出すことになります。
21
21
  また、SetCurrentDirectory関数はExcelが標準で持っていないので、kernel32.dllを呼び出して使用しています。
22
22
 
23
23
  最後に、coko1さんの質問文にあったコードを丸コピー&適宜補足して試したのですがあちこちエラーが出ました。
@@ -26,4 +26,20 @@
26
26
  ・SetCurrentDirectoryのDLL呼び出しとディレクトリ移動。
27
27
  ・UNCフォルダ上にファイルが作成できること。
28
28
 
29
- 【補足】SetcurrentDirectoryWというものもあります。UNICODEの場合はこちらでないとダメなようです。
29
+ 【補足】SetcurrentDirectoryWというものもあります。UNICODEの場合はこちらでないとダメなようです。
30
+
31
+ ###2016/11/10 13:15追記
32
+ 質問の編集を受けて追記します。
33
+ 随分簡単な方法があったのですね。
34
+ これを使うのなら以下の通りにすればよいと思います。
35
+
36
+ "ADO.SaveToFile ..."の前に以下の行を追加します。
37
+ ```ここに言語を入力
38
+ CreateObject("WScript.Shell").CurrentDirectory = SAVEPATH
39
+ ```
40
+ 「ADO.SaveToFile SAVEPATH & "/" & TEXTFILE, 2」は以下のように書き換えてください。
41
+ ```ここに言語を入力
42
+ ADO.SaveToFile TEXTFILE, 2
43
+ ```
44
+ これであっさりできました(テストの前提条件は先ほどと同じ)。
45
+ DLLなんか使わなくてラクですね。