| 
    
     |  | ▼Kein さん: Kein さん、こんにちは。
 >LANを構築した方が楽ですよ。そうすればマクロでデータを引っ張ることも...
 私も前の会社では、LANが当たり前の世界に居たので、歯痒い程解っているのですが、何せ業界が変わり、中小になると、これが現実なんです。(辛い!(T_T))
 また、今回は外部(事務所から12〜3Km)倉庫なので簡単にはいきません。
 >>日々毎朝その日分を作っていきながら回す
 >という作業から、開放されそうだからです。
 されません、ひとまず、毎朝その日分を作っていきながら回さざるを得ません。
 >>雛形が大きな表になってしまい、まして、日々、シートを印刷までしているの
 >>で、ここも頭が痛いんです
 >この場合「データ未入力の行を一気に非表示...」というマクロを組むだけです。
 >例えば B列を基準とするなら
 >
 >Sub R_Hidden_Change()
 >  Static Hck As Boolean
 >
 >  On Error Resume Next
 >  If Hck = False Then
 >   If WorksheetFunction.CountA(Range("B:B")) = 0 Then
 >     MsgBox "B列に値がありません", 48: Exit Sub
 >   End If
 >   Range("B1", Range("B65536").End(xlUp)) _
 >   .SpecialCells(4).EntireRow.Hidden = True
 >   Hck = True
 >  Else
 >   Cells.EntireRow.Hidden = False
 >   Hck = False
 >  End If
 >End Sub
 >
 そうですね!、近頃どうも頭が固くなって来てるなーー...いかん!いかん!
 ありがとうございます。
 >シートを丸ごとコピーすると、シートモジュールのコードは付いてくる筈です。
 >こちらでもテストで確認しています。標準モジュールについては無理ですから、
 >定数 Mdl に指定します。するとコードによってActiveWorkbookにインポートされ>ます。
 これは解決しました。 でも、1つ疑問があります。
 と言うのは、作成されたBook(9月.xls)を開いて、VBEでシート名をダブルクリックすると、原紙(非表示にされています)のシートモジュールは、コードが表示されますが、今回のマクロで作成した日付のシートをダブルクリックしてもコードが表示されません、それで、コピーされていないと思っていたのですが、今回標準モジュールをMdlで取り込んだら、何と、シートモジュールがない日付のシートでも動作するのです!、これはどういう事でしょうか?
 >>今回の各シートはセル幅、高さともコピーされていません。
 >これはこちらでも確認しました。UsedRangeでコピーしていたためのようです。
 >Cells全体をコピーするコードに変えた結果、行高・列幅も反映されています。
 これもバッチリでした!(CellsとUsedRangeの違いも勉強になりました)
 
 さて、何とか Kein さんからごご提示頂いた当月一ヶ月分の、新しいブックを作成するマクロは完成しました。
 これを元に、日々回していく運用のマクロを考えてみます。
 (まだまだ、先は遠いなーー)
 チョットしたヒントをご提示して頂けたら幸いです。
 よろしくお願いします。m(_ _)m
 >
 >Sub ThisMonth_Make_NewBook2()
 >  Dim MkFile As String
 >  Dim Ans As Integer, Scnt As Integer, NewS As Integer
 >  Dim SDay As Date
 >  Dim WS As Worksheet
 >  Const Mdl As String = _
 >  "C:\Documents and Settings\User\My Documents\モジュール\Module1.bas"
 >
 >  MkFile = Application.DefaultFilePath & _
 >  "\" & Month(Date) & "月.xls"
 >  If Dir(MkFile) <> "" Then
 >   Ans = MsgBox("今月のブックは既に存在します" & vbLf & _
 >   "削除して新規にブックを作成しますか", 36)
 >   If Ans = 7 Then Exit Sub
 >  End If
 >  NewS = Day(DateSerial(Year(Date), Month(Date) + 1, 1) - 1)
 >  SDay = DateSerial(Year(Date), Month(Date), 1)
 >  With Application
 >   Scnt = .SheetsInNewWorkbook
 >   .SheetsInNewWorkbook = NewS
 >   .ScreenUpdating = False
 >  End With
 >  Workbooks.Add
 >  With ActiveWorkbook
 >   For Each WS In .Worksheets
 >     WS.Name = CStr(Format(SDay, "m月d日"))
 >     SDay = SDay + 1
 >   Next
 >   ThisWorkbook.Sheets("test").Copy Before:=.Worksheets(1)
 >   .Sheets.FillAcrossSheets .Sheets("test").Cells
 >   .Sheets("test").Visible = False
 >   .VBProject.VBComponents.Import Mdl
 >   .SaveAs MkFile
 >   '.Close
 >  End With
 >  With Application
 >   .ScreenUpdating = True
 >   .SheetsInNewWorkbook = Scnt
 >  End With
 >End Sub
 
 
 |  |