[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBA セルの入力を引用しフォルダを作成し、フォルダに保存する』(みや)
****以前の依頼****
エクセルVBAを使い、CSVのデータシートを分けて保存したいです。
具体的には行は任意になりますが、列はCP列までデータが入っています。 空白も一部ありますが、CO列を基準としてCO列の文字を判別し、判別した文字の名前でCSV保存したいです。CO列には半角で2文字(数字もしくはアルファベット)の構成になっています。 例)18 1A AN N1という感じです。 1行目は項目で2行目以降にデータが入っており、分けたCSVは1行目+CO列の検索結果としたいです。 CO列に18のデータのみを抽出し18.CSVの形式でデスクトップに保存かつ1Aのデータのみを抽出し1A.CSVの形式でデスクトップに保存。以下COに存在する文字の分だけCSVで保存したいです。
****回答****
Option Explicit
Sub test() Dim r As Range Dim c As Range Dim p As String
Set r = Range("A1").CurrentRegion Set c = r(1).Offset(, r.Columns.Count + 1)
p = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\"
r.Columns("CO").AdvancedFilter xlFilterCopy, , c, True
Do While c.Offset(1).Value <> "" With Workbooks.Add r.AdvancedFilter xlFilterCopy, c.Resize(2), .Sheets(1).Range("A1") .SaveAs p & c.Offset(1).Value & ".csv", xlCSV .Close False End With c.Offset(1).Delete xlShiftUp Loop
c.Resize(2).ClearContents
End Sub
****追加したい内容****
回答でデスクトップにCSV保存が出来たのですが、CSVが多くなりすぎて整理をするために、元CSVのW2のセルの名前でフォルダを作成し、その中に分けられたCSVを保存することは可能でしょうか?
Sub フォルダ作成()
MkDir "C:\Users\Desktop\" & Range("W2").Value
End Sub
これでフォルダは作れたのですが、ブックの保存方法がわからなくなりました。
よろしくお願いします。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
「マクロの記録」機能をつかってから、手動操作で適当なブックをそこに保存してみましょう。
できあがったコードをみると何か思い出すかもしれませんよ
(もこな2) 2018/03/15(木) 17:49
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.