あまり使用頻度はないかもしれませんが・・・・
(例)
○元になる一覧表のブック(BOOK_1.xls)
1行目:項目 (A1:一連番号 B1:氏名 C1:住所)
2行目:データ1(A2:1 B2:山田太郎 C2:東京都)
3行目:データ2(A3:2 B3:山田次郎 C3:大阪府)
・
・
以降10行目まで同様のデータが入っているとします。
上記のファイルから
○あらかじめ決められた単票形式のブック(FORMAT.xls)
A1:一連番号(文字列) B1:空白
A2:氏名(文字列) B2:空白
A3:住所(文字列) B3:空白
を呼び出し
○BOOK_1.xlsの一行目の項目のデータを
FORMAT.xlsの B1 B2 B3 の空白部分にコピーペーストし
○BOOK_1.xlsのA2の一連番号の数字をファイル名として取得
し"1.xls"として新規保存をする。
○そのあとは10行目までその作業を繰り返し、1.xlsから10.xls
というファイルを10個作成し終了する
以上のようなことが可能でしょうか?
実際は列数は30程度、行数が1500行程度あり、1500ほどの
ファイルができるようになるんですけど・・・。
よろしくおねがいします。
No.1ベストアンサー
- 回答日時:
こんな感じかな
Sub test1()
Dim cnt As Integer
cnt = 2 ' 一列目手抜き
Do Until (Cells(cnt, 1) = "")
Range("A" & cnt).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:="C:\" & cnt & ".xls" '保存場所
ActiveWindow.Close
cnt = cnt + 1
Loop
End Sub
早速のご回答ありがとうございました。教えていただいたものを参考にして以下のマクロでテストはうまくいきました。これから本番のマクロを組んでみます。
早い回答でとても助かりました。またなにかありましたらよろしくお願いします。
Sub test1()
Dim cnt As Integer
cnt = 2 ' 一列目手抜き
Do Until (Cells(cnt, 1) = "")
Workbooks.Open Filename:="J:\test2\format.xls"
Windows("Book1.xls").Activate
Range("A" & cnt).Select
Application.CutCopyMode = False
Selection.Copy
Windows("format.xls").Activate
Range("B1").Select
ActiveSheet.Paste
Windows("Book1.xls").Activate
Range("B" & cnt).Select
Application.CutCopyMode = False
Selection.Copy
Windows("format.xls").Activate
Range("B2").Select
ActiveSheet.Paste
Windows("Book1.xls").Activate
Range("C" & cnt).Select
Application.CutCopyMode = False
Selection.Copy
Windows("format.xls").Activate
Range("B3").Select
ActiveSheet.Paste
ActiveWorkbook.SaveAs Filename:="j:\test2\" & cnt - 1 & ".xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
ActiveWindow.Close
cnt = cnt + 1
Loop
End Sub
No.2
- 回答日時:
一例です。
ご参考までに。
Sub test()
Dim NewSheet As Worksheet, MySheet As Worksheet
Dim r As Long, LastRow As Long
Dim myPath As String
Set MySheet = ThisWorkbook.ActiveSheet
LastRow = MySheet.Cells(Rows.Count, "A").End(xlUp).Row
myPath = ThisWorkbook.Path
Application.ScreenUpdating = False
For r = 2 To LastRow
If Dir(myPath & "\" & MySheet.Range("A" & r).Value & ".xls") <> "" Then
Workbooks.Open myPath & "\" & MySheet.Range("A" & r).Value & ".xls"
Else
Workbooks.Add
ActiveWorkbook.SaveAs Filename:=MySheet.Range("A" & r).Value & ".xls"
End If
Set NewSheet = ActiveWorkbook.Sheets(1)
NewSheet.Cells.Clear
MySheet.Rows(1).Copy
NewSheet.Range("A1").PasteSpecial Transpose:=True
MySheet.Rows(r).Copy
NewSheet.Range("B1").PasteSpecial Transpose:=True
Application.CutCopyMode = False
Application.DisplayAlerts = False
NewSheet.Parent.Close True
Application.DisplayAlerts = True
Next r
Application.ScreenUpdating = True
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォルダ内の全ブックのシート...
-
ExcelVBAで今開いているユーザ...
-
エクセルVBA Workbook変数に変...
-
VB2010でExcelの行をコピーして...
-
【Excel VBA】ブックを複数開い...
-
personal.xlsの削除方法
-
[Excel VBA] フォルダ内の複数...
-
【ExcelVBA】指定の書式で、マ...
-
EXCELマクロで上書きメッ...
-
VBA、Excelのworkbook.open に...
-
Excel マクロでファイル名を変...
-
Excel VBAを後ろで動かす方法
-
EXCELの自動記録の修正の件
-
エクセル アプリケーションの...
-
エクセルVBAで、ある特定な場所...
-
EXCELマクロでxlsとxlsxを開く方法
-
excelでハイパーリンク 別ブッ...
-
複数のデータ系列の線の太さを...
-
エクセル終了時の保存確認メッ...
-
マクロを消すマクロは不可能?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォルダ内の全ブックのシート...
-
エクセルVBA Workbook変数に変...
-
ExcelVBAで今開いているユーザ...
-
フォルダ内の全ブックのシート...
-
【ExcelVBA】指定の書式で、マ...
-
VB2010でExcelの行をコピーして...
-
【Excel VBA】ブックを複数開い...
-
すでに開いているブックのマク...
-
EXCELマクロでxlsとxlsxを開く方法
-
フォルダ内の全てのBookに同じ...
-
excelマクロ、任意セルの値で名...
-
[Excel VBA] フォルダ内の複数...
-
personal.xlsの削除方法
-
EXCEL VBA起動時の処理
-
Excel VBAを後ろで動かす方法
-
VBA、Excelのworkbook.open に...
-
VBA セル入力された日付データ...
-
他のBookのユーザー定義関数を使う
-
Excelの一括印刷で通し番号をつ...
-
VBA ファイルの開き方
おすすめ情報