[[20190305141308]] 『同一シート内のデータを行毎に分割して保存』(てよん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『同一シート内のデータを行毎に分割して保存』(てよん)

質問させて下さい。1つのシートにバイトさん数名(1名2行)の勤務表があり一人当たり勤務時間1行(A2と4)と残業時間1行(A3と5)の計2行にて管理しています。これをVBAにて人毎にエクセル形式で保存したいと考えています(全ファイルにA1のタイトルとA2の日付等は必ず入れたい)。例としては下記となります。

A1タイトル(2月勤務表) 
A2:氏名 B1:2/1 C1:2/2 D12/3……AK1:合計
A3:●川 300 400 200
A4:残業 0 10 60
A5:■田 200   600 250
A6: 残業 10 30 0



これをファイル毎に下記の様に保存したいです。

2月勤務表●川.xlsm
A1タイトル(2月勤務表) 
A2:氏名 B1:2/1 C1:2/2 D12/3……AK1:合計
A3:●川 300 400 200
A4:残業 0 10 60

2月勤務表■田.xlsm
A1タイトル(2月勤務表) 
A2:氏名 B1:2/1 C1:2/2 D12/3……AK1:合計
A3:■田 200   600 250
A4: 残業 10 30 0

人は月によって変動するのと日によってエクセルの終わりのセルは変動します。

すみませんがご教授宜しくお願い致します。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


追記ですみません。

上記分割する前の段階で分割した後の状態に印刷もしたいと考えています。お手数ですがご検討宜しくお願い致します。
(てよん) 2019/03/05(火) 14:42


Sub main()
    Dim i As Long, m As String, r As Range, c As Range, wb As Workbook
    i = 3
    Set r = Rows("1:2")
    Do While Cells(i, 1).Value <> ""
        Set c = Union(r, Rows(i & ":" & i + 1))
        m = Cells(i, 1).Value
        Set wb = Workbooks.Add
        c.Copy wb.Sheets(1).Range("A1")
        wb.Sheets(1).PrintOut
        wb.SaveAs Filename:=ThisWorkbook.Path & "\" & m & ".xlsx"
        wb.Close False
        i = i + 2
    Loop
End Sub

(mm) 2019/03/05(火) 17:11


mmさま
ありがとうございます!

しかし実行時エラー1004オブジェクト定義のエラーとなってしまいます。
私なりに考えているのですが2は「:」は実際に入れてなく
A2セルに氏名 B2セルに日付の2/1、C2セルに日付の2/2、D2セルに2/3、以下月末まで続き
最後にAK2に合計と項目を載せ書く保存先の人毎のデータの上に項目を残したいと言ったイメージとなります。すみませんがご確認宜しくお願いします。
(てよん) 2019/03/05(火) 18:22


説明が下手で申し訳ございません。イメージ的には下記の様な感じとなります。
印刷と保存はA1からAK2とA3からAK4で1ファイル。2ファイル目以降はA1からAK2はデフォルトで
以降繰り返しとなります。日付と人数は月によって変動するので空白セルは対象外となります。
どうぞ宜しくお願いします。

 A列  B列 C列  D列        AK列


l 氏名 l 2/1 l 2/2 l 2/3 l・・・l 2/28 l 合計 l 1行
l l 金 l 土 l 日 l l 木 l l 2行

l ●川 l 300 l 420 l 200 l・・・l 100 l 2500 l 3行
l 残業 l 0 l 10 l 60 l・・・l 10 l 150 l 4行

l ■田 l 200 l 600 l 250 l・・・l 300 l 1800 l 5行
l 残業 l 10 l 30 l 0 l・・・l 0 l 350 l 6行




月によって人の変動あり

(てよん) 2019/03/05(火) 20:55


説明が下手で申し訳ございません。イメージ的には下記の様な感じとなります。
印刷と保存はA1からAK2とA3からAK4で1ファイル。2ファイル目以降はA1からAK2はデフォルトで
以降繰り返しとなります。日付と人数は月によって変動するので空白セルは対象外となります。
どうぞ宜しくお願いします。

 A列  B列 C列  D列        AK列


l 氏名 l 2/1 l 2/2 l 2/3 l・・・l 2/28 l 合計 l 1行
l 残業 l 金曜l 土曜l 日曜l l 木曜 l 空白 l 2行

l ●川 l 300 l 420 l 200 l・・・l 100 l 2500 l 3行
l 残業 l 000 l 100 l 600 l・・・l 100 l 1500 l 4行

l ■田 l 200 l 600 l 250 l・・・l 300 l 1800 l 5行
l 残業 l 100 l 300 l 000 l・・・l 000 l 3500 l 6行




月によって人の変動あり

(てよん) 2019/03/05(火) 20:58


回答ではありません。
明日になれば、mmさんから回答があると思います。

>しかし実行時エラー1004オブジェクト定義のエラーとなってしまいます。

どの行で、エラーなのでしょうか?

>日付と人数は月によって変動するので空白セルは対象外となります。

空白セルの例も提示するとよいかと思います。

(マナ) 2019/03/05(火) 22:46


マナさま

通常エラーの個所が黄色く表示されると思うのですが
今回のエラーは個所が指定されず1004エラーだけ出てしまっています。

どうぞ宜しくお願いします。
(てよん) 2019/03/06(水) 09:39


 VBEのツール-オプション-全般でエラートラップをエラー発生時に中断としてから実行するとどうなるだろうか?
 確認が終われば上記オプションは元に戻しておいてくれ。
(ねむねむ) 2019/03/06(水) 09:51

以下はいかがでしょうか?
・元シートがアクティブな状態で実行しているか?
・ファイル名に使用できない文字が使用されてないか?

(mm) 2019/03/06(水) 10:51


マクロを書いたブックを、保存せずに実行しているのでは?
(???) 2019/03/06(水) 11:11

mmさま
皆さま

出来ました!本当にありがとうございます!
私の方でAセルにタイトルを入れてしまっていた為、保存ファイル名が同一となり
エラーを吐いてしまっていた様です。

この度は本当にありがとうございます!感謝しております。

印刷がA4にて分割されてしまうので自分で検討してみます。

本当にありがとうございました!
(てよん) 2019/03/06(水) 12:50


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.