例えばデーター管理ファイルAというファイルの中にある
顧客データという名前のエクセルブックを開いて上書き保存をして、
データー管理ファイルBというファイルの中に顧客データ【1016】(1)
という名前で(1016とは本日の日付を表しています)保存するとします。
この段階で、ファイルBの中に顧客データ【1016】(1)が入ってる事になりますが、再度本日二回目にAファイルの中にある顧客データをBファイルの中へ保存する場合顧客データ【1016】(2)という名称で保存して
さらに本日三回目に同じように保存する場合は【1016】(3)というようにしたいのですが(もし明日保存する場合は、一回目は顧客データ【1017】(1)、二回目は【1017】(2)というように日付が変わると(1)から始めるようにしたいのですが)、VBAでどの様にしたらいいでしょうか?
No.6
- 回答日時:
質問の中の用語で、ファイルの中にファイルを作る、といった書き方があり、無茶です。
訂正して、フォルダ(名)のことかはっきりさせること。
マクロの記録でもとって、ここをこう修正したいですが、ぐらいの質問にすべきと思うが。
マクロの記録ぐらいとって勉強すること。
No.5
- 回答日時:
以下のマクロは、既に開いたブックに対して保存する部分のみです。
「ファイルB\」の方に保存するとしたら、以下のように変更してください。
「ファイルA\」の方から「顧客データ.xls」を開いた状態で、以下のマクロを実行してみてください。
「名前を付けて保存」する画面が表示されるので、保存先、ファイ名などの変更も出来ます。
そのまま、「保存」ボタンを押すと、指定されたフォルダ、ファイル名称で保存されます。
あくまで、例なので細かい部分などは自分で変更する必要があります。
Sub 名前を付けて保存()
Dim wSeq As String
Dim wStr As String
Dim Flnm As String
Dim wFlnm As String
'
Flnm = "C:\Documents and Settings\AABBセンター\デスクトップ\データー管理\ファイルB\" '←保存先フォルダ
Flnm = Flnm & "顧客データ" '←保存ファイル名
Flnm = Application.GetSaveAsFilename(InitialFileName:=Flnm, _
filefilter:="Excel ファイル (*.xls), *.xls", Title:="名前を付けて保存")
If Flnm = "False" Then
Exit Sub
End If
'
wSeq = 0
ExitFlg = False
wFlnm = Flnm
Do While ExitFlg = False
If Dir(Flnm) <> "" Then
'存在したら、連番を加算
wSeq = wSeq + 1
wStr = "(" & wSeq & ")"
Flnm = Left(wFlnm, Len(wFlnm) - 4) & wStr & ".xls"
Else
'存在しない時、保存
ActiveWorkbook.SaveAs Filename:=Flnm
ExitFlg = True
End If
Loop
End Sub
No.4
- 回答日時:
No3です。
以下のように変更してください。
Flnm = "C:\" & Format(Date, "mmdd") & ".xls"
↓
Flnm = "C:\Documents and Settings\AABBセンター\デスクトップ\データー管理\ファイルA\"
Flnm = Flnm & "顧客データ"
この回答への補足
すいません
C:\Documents and Settings\AABBセンター\デスクトップ\データー管理\ファイルA\→C:\Documents and Settings\AABBセンター\デスクトップ\データー管理\フォルダA\でした(ここに顧客データという名前のエクセルブックが入ってます)
それで五行目の"C:\"の部分を→"C:\Documents and Settings\AABBセンター\デスクトップ\データー管理\フォルダA\"に書き換えるのはわかりますが、Flnm = Flnm & "顧客データ" の部分はどの部分を書き換えてるのわかりません。あと顧客データをC:\Documents andSettings\AABBセンター\デスクトップ\データー管理\フォルダB\に最初に説明したやり方で名前を変えて保存していくわけですが、後はもうコードを書き換える必要は無くそのままモジュールにコードを貼り付けて実行できますでしょうか?
No.3ベストアンサー
- 回答日時:
こんにちは。
以下の例を参考にしてください。
>【1016】(2)という名称で保存して
→ブック名称の事ですよね?
Sub 名前を付けて保存()
Dim wSeq As String
Dim wStr As String
Dim Flnm As String
Dim wFlnm As String
'
Flnm = "C:\" & Format(Date, "mmdd") & ".xls"
Flnm = Application.GetSaveAsFilename(InitialFileName:=Flnm, _
filefilter:="Excel ファイル (*.xls), *.xls", Title:="名前を付けて保存")
If Flnm = "False" Then
Exit Sub
End If
'
wSeq = 0
ExitFlg = False
wFlnm = Flnm
Do While ExitFlg = False
If Dir(Flnm) <> "" Then
'存在したら、連番を加算
wSeq = wSeq + 1
wStr = "(" & wSeq & ")"
Flnm = Left(wFlnm, Len(wFlnm) - 4) & wStr & ".xls"
Else
'存在しない時、保存
ActiveWorkbook.SaveAs Filename:=Flnm
ExitFlg = True
End If
Loop
End Sub
この回答への補足
素人なのでよく分らないんですが、C:\Documents and Settings\AABBセンター\デスクトップ\データー管理にフォルダAとフォルダBが入ってます。C:\Documents and Settings\AABBセンター\デスクトップ\データー管理\ファイルAに顧客データというエクセルブックが入ってます。その場合上記のコードのどこを書き換えればいいでしょうか? 無知ですいませんが、教えて下さい。
補足日時:2008/10/16 16:52No.2
- 回答日時:
「データー管理ファイルAというファイル」「データー管理ファイルBというファイル」とありますが、これはフォルダの事だと理解しました。
つまり、『データー管理ファイルB』と言うフォルダに、日付と連番を使ったユニークなファイル名でファイルを保存したいということでよろしいでしょうか?
ファイル名を確定する部分だけ。
まず、ファイル名を作り、Dir関数で同名ファイルの有無を調べます。
同名ファイルが有れば連番を+1して再確認、無ければこの後でそのファイル名を使用します。
nCount = 0 '連番用
sFilenameD = "【" & Format(Now(), "MMDD") & "】(" 'ファイル名の日付を含んだ前の部分
Do 'ループ開始
nCount = ncount + 1
sFilename = sFilenameD & nCount & ").xls" 'ファイル名
sRtn = Dir("C:\データー管理ファイルB\" & sFilename) '上で作成したファイル名と同じファイルがあるか
Loop Until sRtn = "" 'ファイル名未使用ならループを抜ける
No.1
- 回答日時:
>VBAでどの様にしたらいいでしょうか?
これはVBAでプログラムを作成して欲しいと言うことなのでしょうか
そうだとしたら規約違反の「丸投げに相当します」ので回答できません
質問者様ご自身でプログラムを作成したいと言う事でしたら
excel VBA 保存
などの語句を検索すればプログラム作成の参考となるHPがいくつも出てきますよ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
txt ファイル (テキストフ...
-
EXCEL、上書き保存したは...
-
複数あるテキストボックス中の...
-
拡張子tmpファイルを開く方法
-
auのスマフォでPDFを見るには・...
-
Excelで勝手に保存画面に飛びま...
-
文書内の表が破損しています、...
-
ZIPファイル内のファイルを...
-
拡張子のないファイルの作成
-
エクセルのファイル名が「開く...
-
閲覧したwebページの画像が自動...
-
PUBファイルをパブリッシャー以...
-
セーブデータファイルを開くに...
-
Lファイルという画像をマイピク...
-
エクセルのCSVファイルで電話帳...
-
wordの「docx」ファイルを「tex...
-
Office2003のサポート終了と拡...
-
GIMP2のファイルが見つからない
-
何故かエクセル終了時に「変更...
-
【Access】テーブルをエクスポ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
txt ファイル (テキストフ...
-
EXCEL、上書き保存したは...
-
Excelで勝手に保存画面に飛びま...
-
拡張子のないファイルの作成
-
ZIPファイル内のファイルを...
-
拡張子tmpファイルを開く方法
-
閲覧したwebページの画像が自動...
-
PUBファイルをパブリッシャー以...
-
Lファイルという画像をマイピク...
-
文書内の表が破損しています、...
-
【Access】テーブルをエクスポ...
-
複数あるテキストボックス中の...
-
auのスマフォでPDFを見るには・...
-
エクセルのファイル名が「開く...
-
Wordの保存形式でwebページの意...
-
wordの「docx」ファイルを「tex...
-
メールで送られてきたエクセル...
-
Image-Jの使い方を教えて下さい
-
フォルダー内のファイル名一覧...
-
開いているファイルをリネーム...
おすすめ情報