Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


63114 / 76738 ←次へ | 前へ→

【18223】Re:行数が不定の集計処理について
回答  Kein  - 04/9/18(土) 18:25 -

引用なし
パスワード
   >外部の為、日々のデータの受け渡しがFD
マシン間の距離とか導入コストの問題などもありますが、出来たらピアツーピアでも
いいから、LANを構築した方が楽ですよ。そうすればマクロでデータを引っ張ることも
出来るので
>日々毎朝その日分を作っていきながら回す
という作業から、開放されそうだからです。
>でも、入庫量が日々まちまちで、多い日は数千ケース、少ない日は数十ケースてな
>感じなんで、雛形が大きな表になってしまい、まして、日々、シートを印刷まで
>しているので、ここも頭が痛いんです
この場合「データ未入力の行を一気に非表示にする」というマクロを組むだけです。
例えば 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

これを実行する度に、アクティブシートの空白行の表示・非表示が切り替えられます。
列のデータを合計する数式が、B列最終入力行(5000でも10000でも)にあれば、
項目と合計との間の空白が処理されるわけです。合計値の目視確認だけでなく、
印刷時にも非表示行は印刷されません。プレビューで確認してみて下さい。
>原紙のシートモジュールと標準モジュールが各シートにコピーされていません。
シートを丸ごとコピーすると、シートモジュールのコードは付いてくるはずです。
こちらでもテストで確認しています。標準モジュールについては無理ですから、
まずVBE画面でコピーしたいモジュールをアクティブにして「ファイル」「ファイルの
エクスポート」で任意のフォルダーに保存して下さい。そのフルパスを下のコードの
定数 Mdl に指定します。するとコードによってActiveWorkbookにインポートされます。
ついでに他のモジュールも、バックアップしておくと良いでしょう。予期せずブックが
破損したときに、バックアップファイルがあると助かりますよ。
>普通にシートタグを右クリックして[移動またはコピー]でコピーすると、
>セル幅、高さもきれいにコピーされますが、今回の各シートはセル幅、高さとも
>コピーされていません。
これはこちらでも確認しました。UsedRangeでコピーしていたためのようです。
Cells全体をコピーするコードに変えた結果、行高・列幅も反映されています。

↓の改造したコードで試してみて下さい。結果を直ぐにチェックできるよう、
ブックの Closeメソッドはコメントにしています。本番では "'" を外します。
なお、実行前に原紙シート名の変更、およびモジュールのエクスポートと定数値の変更
をお忘れなく。

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
0 hits

【18165】行数が不定の集計処理について ackkn 04/9/16(木) 21:15 質問
【18166】Re:行数が不定の集計処理について Kein 04/9/16(木) 22:08 回答
【18167】Re:行数が不定の集計処理について ackkn 04/9/16(木) 22:49 お礼
【18168】Re:行数が不定の集計処理について ackkn 04/9/16(木) 23:04 質問
【18171】Re:行数が不定の集計処理について Kein 04/9/17(金) 1:46 発言
【18189】Re:行数が不定の集計処理について ackkn 04/9/17(金) 17:08 発言
【18207】Re:行数が不定の集計処理について Kein 04/9/18(土) 0:31 回答
【18208】Re:行数が不定の集計処理について Kein 04/9/18(土) 0:34 発言
【18213】Re:行数が不定の集計処理について ackkn 04/9/18(土) 11:47 回答
【18217】Re:行数が不定の集計処理について ackkn 04/9/18(土) 14:02 回答
【18223】Re:行数が不定の集計処理について Kein 04/9/18(土) 18:25 回答
【18224】Re:行数が不定の集計処理について Kein 04/9/18(土) 18:32 発言
【18249】Re:行数が不定の集計処理について ackkn 04/9/19(日) 14:41 回答
【18256】Re:行数が不定の集計処理について Kein 04/9/19(日) 20:11 回答
【18257】Re:行数が不定の集計処理について ackkn 04/9/19(日) 23:22 回答
【18259】Re:行数が不定の集計処理について Kein 04/9/20(月) 0:56 回答
【18263】Re:行数が不定の集計処理について ackkn 04/9/20(月) 6:38 お礼
【18289】Re:行数が不定の集計処理について ackkn 04/9/20(月) 17:58 質問
【18293】Re:行数が不定の集計処理について Kein 04/9/20(月) 22:18 回答
【18299】Re:行数が不定の集計処理について ackkn 04/9/20(月) 23:42 質問
【18301】Re:行数が不定の集計処理について Kein 04/9/21(火) 2:13 回答

63114 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free