Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


44593 / 76736 ←次へ | 前へ→

【37158】Re:textファイルへの書き込みについて
発言  Kein  - 06/4/23(日) 17:57 -

引用なし
パスワード
   まずコーデングの定石として、何度も使う長いパスは定数で宣言します。

Const DskTop As String = _
"C:\Documents And Settings\Daisuke\デスクトップ\"

で本題ですが、そのコードには決定的なミスがあります。
>結果ファイル1 = Dir("c:\documents and settings\daisuke\デスクトップ\" _
> & 製番1 & ActiveSheet.Name, Attributes:=vbNormal)
>If 結果ファイル1 = "結果.txt" Then

この部分のコードは「製番1 & ActiveSheet.Name」の文字列が "結果.txt"
になっていれば・・という条件判定をしています。だから、もしここが True なら

>c:\documents and settings\daisuke\デスクトップ\"& 製番1 & _
>ActiveSheet.Name & "\結果.txt"

の文字列は、

c:\documents and settings\daisuke\デスクトップ\結果.txt\結果.txt"

と、等価である。ということになります。どう見てもおかしいでしょ ?
そーいうミスを避ける意味でも、長い文字列は文字列型の変数に格納して、
使った方がいいのです。あと、FSO.GetFileName 〜 の部分は、単に

Dim OldF As String, NewF As String '←この宣言も抜けています。

OldF = Selection.Value & ".dwg"
NewF = 製番1 & ActiveSheet.Name & "\" & 番号 & 材料名 & _
"×" & サイズ & "×" & 長さ & "-" & 数量 & "s.dwg"

と、するだけでいいです。実は全く同じ意味ではなく、GetFileNameを使うと
ファイルの存在チェックか出来るのですが、存在しなければ実行時エラーに
なるはずだから、それをトラップするコードがないと意味なしになります。
それから、Selection を使うのは出来るかぎり避けること。そこには値だけ
でなく「現在選択されている、あらゆるもの」が入ってしまうので、とても
危険です。

>myfso.CreateTextFile 〜
↑これは無意味なようですが・・。

以上のようなことに気をつけて、再度書き直してみて下さい。
0 hits

【37139】textファイルへの書き込みについて maki 06/4/23(日) 13:16 質問
【37141】Re:textファイルへの書き込みについて Hirofumi 06/4/23(日) 13:45 発言
【37142】Re:textファイルへの書き込みについて maki 06/4/23(日) 13:57 質問
【37149】Re:textファイルへの書き込みについて Hirofumi 06/4/23(日) 15:43 回答
【37156】Re:textファイルへの書き込みについて maki 06/4/23(日) 17:32 お礼
【37143】Re:textファイルへの書き込みについて Kein 06/4/23(日) 14:10 発言
【37144】Re:textファイルへの書き込みについて maki 06/4/23(日) 14:26 質問
【37146】Re:textファイルへの書き込みについて Kein 06/4/23(日) 15:03 発言
【37147】Re:textファイルへの書き込みについて maki 06/4/23(日) 15:19 質問
【37152】Re:textファイルへの書き込みについて Kein 06/4/23(日) 16:54 発言
【37153】Re:textファイルへの書き込みについて maki 06/4/23(日) 16:58 質問
【37158】Re:textファイルへの書き込みについて Kein 06/4/23(日) 17:57 発言
【37159】Re:textファイルへの書き込みについて maki 06/4/23(日) 18:07 お礼
【37157】Re:textファイルへの書き込みについて maki 06/4/23(日) 17:34 お礼

44593 / 76736 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free