Excel VBA質問箱 IV

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

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


4095 / 13646 ツリー ←次へ | 前へ→

【58376】ファイル保存 nimo 08/10/22(水) 10:06 質問[未読]
【58377】Re:ファイル保存 マクロマン 08/10/22(水) 10:44 発言[未読]
【58389】Re:ファイル保存 nimo 08/10/23(木) 11:56 質問[未読]
【58390】Re:ファイル保存 マクロマン 08/10/23(木) 11:58 発言[未読]
【58392】Re:ファイル保存 nimo 08/10/23(木) 12:25 質問[未読]
【58405】Re:ファイル保存 マクロマン 08/10/23(木) 17:57 発言[未読]
【58406】Re:ファイル保存 マクロマン 08/10/23(木) 19:07 発言[未読]
【58460】Re:ファイル保存 nimo 08/10/27(月) 10:16 質問[未読]
【58461】Re:ファイル保存 マクロマン 08/10/27(月) 10:45 発言[未読]
【58474】Re:ファイル保存 nimo 08/10/27(月) 16:48 お礼[未読]

【58376】ファイル保存
質問  nimo  - 08/10/22(水) 10:06 -

引用なし
パスワード
   カレントディレクトリにファイルを保存する際に
同じ名前が存在している場合
ファイル名01.xlsというような名前で保存し
ファイル名01.xlsが存在する場合は
ファイル名02.xlsと連番で保存をしたく思います。
この場合はどのような作業を行えばよろしいでしょうか

【58377】Re:ファイル保存
発言  マクロマン  - 08/10/22(水) 10:44 -

引用なし
パスワード
   カレントディレクトリは
CurDir
で取得できます。

また、ファイルの有無は
Dir(ファイルのフルパス)
の戻り値で判定できます。

戻り値が
""
なら、ファイルは存在します。

いろんな方法がありますが、
Do 〜Loop
でループする方法があります。

Dir()の戻り値が""の間はループする、というのが
分かりやすいかな。

Do While Dir(フルパス) <> ""
 cnt = cnt + 1
 フルパス = "フォルダパス" & "\" & "ファイル名" & Format(cnt ,"00") & ".xls"
Loop

でループを抜けたらファイルをフルパスで保存します。

【58389】Re:ファイル保存
質問  nimo  - 08/10/23(木) 11:56 -

引用なし
パスワード
   試してみたのですがうまくいきませんでした
すみませんがもう少し教えていただけませんでしょうか

【58390】Re:ファイル保存
発言  マクロマン  - 08/10/23(木) 11:58 -

引用なし
パスワード
   現状のコードでいいのでアップしてみませんか?

【58392】Re:ファイル保存
質問  nimo  - 08/10/23(木) 12:25 -

引用なし
パスワード
   Dim フルパス As String
Do While Dir(CurDir) <> ""
 cnt = cnt + 1
 MsgBox CurDir & "\" & "ファイル名" & Format(cnt, "00") & ".xls"
 フルパス = CurDir & "\" & "ファイル名" & Format(cnt, "00") & ".xls"
Loop
  'ChDir "C:\Users\sky10765\Desktop\okd"
  ActiveWorkbook.SaveAs Filename:=フルパス


このような感じにしております

【58405】Re:ファイル保存
発言  マクロマン  - 08/10/23(木) 17:57 -

引用なし
パスワード
   超おしい!一箇所だけ違った。
↓のように変更して試してみてください。

>Do While Dir(CurDir) <> ""

Do While Dir(フルパス) <> ""

【58406】Re:ファイル保存
発言  マクロマン  - 08/10/23(木) 19:07 -

引用なし
パスワード
   cntの変数宣言も忘れずに行いましょう。
IntegerかLongでどちらか適した方で。

【58460】Re:ファイル保存
質問  nimo  - 08/10/27(月) 10:16 -

引用なし
パスワード
   Dim Refilea, フルパス As String
Dim cnt As Long
Do While Dir(フルパス) <> ""
Refile = ActiveWorkbook.Name
cnt = cnt + 1
フルパス = "C:" & "\" & Refile & Format(cnt, "00") & ".xls"
Loop
 ActiveWorkbook.SaveAs Filename:=フルパス
このように編集したところ
結果が
test01.xls.01xls
となってしまいました・・・
この回避方法はあるのでしょうか

【58461】Re:ファイル保存
発言  マクロマン  - 08/10/27(月) 10:45 -

引用なし
パスワード
   InstrRev関数
で拡張子の前の"."の位置を取得し、
Left関数でその左側を切り出してみてはいかがでしょう?

【58474】Re:ファイル保存
お礼  nimo  - 08/10/27(月) 16:48 -

引用なし
パスワード
   だいぶ時間がかかってしまいましたが何とか思うものができました
マクロマンさんありがとうございました

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