人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

≪EXCEL VBA≫

エクセルのシートにA列の氏名でソートされたデータが入っています。
これをA列のデータごとに新規ファイルで保存することはできますか?
(ファイル名はA列.xls)

保存する形式はcsvでもかまいません。

語彙不足で状況がうまく説明できないので、画像を見て雰囲気をつかんでいただけたら嬉しいです。

コメント欄も開いておきます。
よろしくお願いします。

1188186915
●拡大する

●質問者: panana
●カテゴリ:コンピュータ
✍キーワード:CSV Excel VBA xls エクセル
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● きゃづみぃ
●60ポイント ベストアンサー
Sub Macro1()
 
b = ""
c = 2
Sheets("Sheet1").Select
Sheets("Sheet1").Range("A1").Select
Selection.End(xlDown).Select
d = Selection.Row

For a = 2 To d
 If Sheets("Sheet1").Range("A" & a) = "" Then Exit For
 
 If b <> Sheets("Sheet1").Range("A" & a) Then
 b = Sheets("Sheet1").Range("A" & a)
 c = a - 1
 Sheets("Sheet1").Select
 Sheets("Sheet1").Copy After:=Sheets(1)
 ActiveSheet.Name = "worksheet"

 For a2 = d To 2 Step -1
 If b = Sheets("Sheet1").Range("A" & a2) Then
 c2 = a2 + 1
 Exit For
 End If
 Next a2

 If d >= c2 Then
 Sheets("worksheet").Rows(c2 & ":" & d).Select
 Selection.Delete Shift:=xlUp
 End If

 If 2 < c Then
 Sheets("worksheet").Rows("2:" & c).Select
 Selection.Delete Shift:=xlUp
 End If
 

 Sheets("worksheet").Select
 Sheets("worksheet").Move
 
 ActiveWorkbook.SaveAs Filename:=b & ".xls"
 ActiveWorkbook.Close
 End If
Next a
End Sub

実行させる条件として 氏名のエクセルファイルが存在しないこと。

元のシート名は Sheet1

ワークとして worksheet のシート名が利用できること。

◎質問者からの返答

希望通りの動作をしました!

どんな処理をしているのか、これから読み解こうと思います。

ありがとうございました。とても助かりました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ