質問: エクセル2007 名前を付けて 保存 vba(マクロ) エクセル2007 名前を付けて 保存 vba(マクロ) 今回もよろしくお願いします。 今回は作業終了時にファイルに名前を付けて自動保存させたいのですがうまくいきませんのでアドバイスお願いします。 ファイル名はセルの数か所にある文字、日付などを足してファイル名にしようとしています。 例えば a1 報告書 a2 2010/03/22 a3 パソコン と入っているとします。 ファイル名は ”報告書20100322パソコン”としたいのですが、日付の処理がわかりません・・・。 普通に表示させると”報告書40259パソコン”となってしまいます。 ネットでは20100322から2010/03/22の日付形式への変換の方法は多数見受けられるのですが、逆は未だ見つけられないため、投稿しました。 同じファイル名がある時は、ファイル名+(1)のようにファイル名がダブらないようにもしたいのです。 いつも、全て手打ちでやっておりエクセルファイル保存後、pdfファイルでも同じ名前で保存しているため、可能であればpdfでも保存出来ればうれしいです。 pdfはadobe standard8といきなりpdfを使用しています。 ご教授よろしくお願いします。
回答: sub 基本形() dim s as string, s1 as string dim n as long dim p as string p = "c:\folder\" '基本の文字列を作る with activeworkbook.worksheets("sheet1") s = .range("a1").value & format(.range("a2").value, "yyyymmdd") & .range("a3").value end with 'ファイルの有無を調べてカウントアップする s1 = dir(p & s & ".xls") do until s1 = "" n = n + 1 s1 = dir(p & s & format(n, "(0)") & ".xls") loop '保存する activeworkbook.saveas filename:= p & s & iif(n = 0, "", format(n, "(0)")) & ".xlsm", fileformat:=xlopenxmlworkbookmacroenabled end sub #どのブックを保存したいのかも,どのシートのセルを見ているのかも,どこに保存したいのかも,情報がありません。 #日付の文字列の整形が判らないから始まって,あれもこれもどれもそれもなんでもご相談に突っ込んで全部やって貰わないと気が済まないご相談だと,皆さんからもやっぱり引かれちゃいますよ? 適度に整理して,ステップバイステップで判らないところを明確にしてみてください。