[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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で保存したいです。
どなたか教えてください。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
どこに空白があるのでしょうか?
(マナ) 2018/03/02(金) 21:44
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
(マナ) 2018/03/02(金) 22:13
ありがとうございます。
返信が遅くなり申し訳ごXざいません。
使ってみます。
(みや) 2018/03/05(月) 13:15
ちなみに今のコードだと、デスクトップにCSVが沢山出来てしまい整理がつかなくなってしまいました。
元のCSVのW2のセルのフォルダを作成し、その中に分けられたCSVを保存する事って可能でしょうか?
(みや) 2018/03/15(木) 12:41
(マナ) 2018/03/15(木) 20:16
ギブアップですm(_ _)m
自力で色々試してみましたが、出来ませんでした。
フォルダは出来たが、CSVの保存先がデスクトップになってしまいます。
(みや) 2018/03/16(金) 14:46
試してみてわからなかったのです。。。
(みや) 2018/03/16(金) 15:11
まぁついでなので、こっちで答えちゃいます。
マクロの記録で得られたコードのうち
Filename:=○○○○○
の部分に注目してみてください。
(もこな2) 2018/03/16(金) 15:28
Sub Sample()
Dim p As String p = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\" '↑文字列型の変数「p」に何を格納してますか?
With Workbooks.Add .SaveAs _ Filename:=p &”ブック名” & ".csv", _ FileFormat:=xlCSV End With
End Sub
(もこな2) 2018/03/16(金) 15:56
Sub Sample()
Dim p As String p = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\" '↑文字列型の変数「p」に何を格納してますか?
With Workbooks.Add .SaveAs _ Filename:="C:Users\Desktop\ & p & "ブック名" & ".csv"", _ FileFormat:=xlCSV End With
End Sub
マクロの記録を使ってPCに保存されている情報と頂いたヒントからすると上記かと思ったのですが。
コンパイルエラー:構文エラーが発生します。
"の入れ方がおかしいのか&の使い方がおかしいのかなとは思うのですが、ここで打開が出来ませんでした。
(みや) 2018/03/16(金) 16:28
(もこな2) 2018/03/16(金) 17:17
コンパイルエラーは、それが原因です。具体的には2カ所
(1)pの前、余計なものが付いちゃってるし、ダブルクォーテーションが抜けてる
(2)csvの後ろ、ダブルクォーテーションが2つになってる
そして、考えていただきたいのは
「どこでデスクトップに保存しなさいという命令になってるのか」
です。
「コードの検証をしてみてください」でも「改造してみてください」でもないです。
とりあえず、私が 2018/03/16(金) 15:56 に投稿したコードを使って ステップ実行してみて 変数「p」に何が格納されているのか、確認してみてください。
(もこな2) 2018/03/16(金) 17:33
ありがとうございます。
PCが使える環境が無くて返信が遅くなりました。
確認してみます。
(みや) 2018/03/22(木) 12:10
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.