このサイトのお力により以下のプロシージャができました。
折角作っていただいたのですが、処理枚数が増えたため1ファイルに1日分だったのが3日分(6ファイル)をコピーすることになってしまいました。どのようにしたらよいでしょうか、お分かりの方いらっしゃいましたらよろしくお願いします。
現状は、あるフォルダー内のファイル970303日報1、970303日報2を開いて、新しいブックに貼りつけて保存する。次に970304日報1、970304日報2を開いて新しいブックに貼りつけて保存するという作業の繰り返しです。
これを、970303日報1,2 970304日報1,2 970305日報1,2の3日分を新しいブックにコピーして保存する。次に970306日報1,2 970307日報1,2 970308日報1,2を新しいブックにコピーして保存する。これの繰り返しをしたいのですがどうしたらよいでしょうか。
ファイルのコピーする範囲は一定です。貼り付けるブックのセルは
1日目の日報1がA1、日報2がL5、2日目の日報1がA40、日報2がL44
3日目の日報1がA79、日報2がL83となります。
すみませんよろしくお願いします。
Sub copybook11()
Dim myPath As String 'このブックのパス
Dim DataFile As String 'Dir()で開くブック名
Dim copybook As Workbook '開いたブック
Dim NewBook As String '新しいブック
Dim NewFileName As String '新しいファイル名
myPath = ThisWorkbook.Path & "\"
DataFile = Dir(myPath & "*.xls", vbNormal)
Do While DataFile <> ""
If DataFile <> ThisWorkbook.Name And InStr(1,
DataFile, "日報") > 0 Then
Set copybook = Application.Workbooks.Open
(Filename:=myPath & DataFile, ReadOnly:=True)
Select Case Mid(DataFile, InStr(1, DataFile, "日
報"), 3)
Case "日報1"
Workbooks.Add
NewBook = ActiveWorkbook.Name
copybook.ActiveSheet.Range("A1:K38").copy
Workbooks(NewBook).ActiveSheet.Range
("A1").PasteSpecial paste:=xlAll
Application.CutCopyMode = False
copybook.Close
Case "日報2"
copybook.ActiveSheet.Range
("B3:K36,T3:U36").copy
Workbooks(NewBook).ActiveSheet.Range
("L5").PasteSpecial paste:=xlAll
Application.CutCopyMode = False
copybook.Close
NewFileName = Format(Workbooks
(NewBook).ActiveSheet.Range("k2").Value, "yyyymmdd") & "日
報.xls"
Workbooks(NewBook).SaveAs Filename:=myPath
& NewFileName, FileFormat:=xlExcel8
Application.DisplayAlerts = True
Workbooks(NewFileName).Close
End Select
End If
DataFile = Dir
Loop
End Sub
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
前回の解決から、数日で変更ですか
ご自分でも分っていると思いますが
初心者には、まだ難しいと思いますよ
必要ならば、専門業者にでも頼んでは如何?
変更部分のみ
Case "日報1"
If NewBook Is Nothing Then
copybook.ActiveSheet.Copy
Set NewBook = ActiveWorkbook
Else
With NewBook.ActiveSheet
copybook.ActiveSheet.Range("A1:K38").Copy .Range("A40")
If .Range("a40").Value = "" Then
.Range("a40").PasteSpecial Paste:=xlAll
Else
.Range("a79").PasteSpecial Paste:=xlAll
End If
End With
End If
copybook.Close
Case "日報2"
With NewBook.ActiveSheet
copybook.ActiveSheet.Range("B3:K36,T3:U36").Copy
If .Range("l5").Value = "" Then
.Range("L5").PasteSpecial Paste:=xlAll
ElseIf .Range("l44").Value = "" Then
.Range("L44").PasteSpecial Paste:=xlAll
Else
.Range("L83").PasteSpecial Paste:=xlAll
copybook.Close
NewFileName = Format(.Range("k2").Value, "yyyymmdd") & "日報.xls"
NewBook.SaveAs Filename:=myPath & NewFileName, FileFormat:=xlExcel8
Application.DisplayAlerts = True
NewBook.Close
End If
End With
エラー等は考慮していません
最低限の変更しかしてませんので・・悪しからず
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワイルドカード「*」を使うとう...
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
別ブックをダイアログボックス...
-
【ExcelVBA】インデックスが有...
-
VBA シート名が一致した場合の...
-
VBA コードを実行すると画面が...
-
Excel にて、 リストボックスの...
-
VBS Bookを閉じるコード
-
エクセル VBA 他シートの行を選...
-
[Excel]ADODBでNull変換されて...
-
任意のブックのシートをコピー
-
【VBA】全シートの計算式を全て...
-
VBA 実行時エラー 2147024893
-
VBA 別ブックからコピペしたい...
-
【マクロ】アクティブセルにブ...
-
【ExcelVBA】zip圧縮されたCSV...
-
EXCEL2013 シート内容を別ブッ...
-
vbaで他のブックに転記したい。...
-
複数のエクセルブックをひとつ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
VBA 別ブックからコピペしたい...
-
別ブックをダイアログボックス...
-
ワイルドカード「*」を使うとう...
-
【マクロ】AブックからBブック...
-
【ExcelVBA】インデックスが有...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBA コードを実行すると画面が...
-
VBA シート名が一致した場合の...
-
VBA 実行時エラー 2147024893
-
VBS Bookを閉じるコード
-
VBAで別のブックにシートをコピ...
-
VBAで別ブックのシートを指定し...
-
【マクロ】違うフォルダにある...
-
[Excel]ADODBでNull変換されて...
-
VBAで複数のブックを開かずに処...
-
【Excel VBA】書き込み先ブック...
-
Excelマクロ 該当する値の行番...
-
vbaでvbaProjectのパスワード解...
おすすめ情報