Excel VBA質問箱 IV

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

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


7087 / 13644 ツリー ←次へ | 前へ→

【41274】帳票印字においての改ページ 質問(初心者A氏) 06/8/3(木) 16:19 質問[未読]
【41282】Re:帳票印字においての改ページ Kein 06/8/3(木) 17:44 回答[未読]
【41301】Re:帳票印字においての改ページ 質問(初心者A氏) 06/8/4(金) 9:34 質問[未読]
【41300】Re:帳票印字においての改ページ Jaka 06/8/4(金) 9:31 発言[未読]

【41274】帳票印字においての改ページ
質問  質問(初心者A氏)  - 06/8/3(木) 16:19 -

引用なし
パスワード
   1点教えて下さい。

CSVファイルを読み込み、内容編集後明細印字していますが
ある情報が変わると、改ページしたいのですがイメージが
わかないので教えて下さい。

AAA,,20060803,10   
AAA,,20060803,10   
AAA,,20060803,10   
BBB,,20060803,10   
BBB,,20060803,10   
BBB,,20060803,10   
CCC,,20060803,10   
CCC,,20060803,10   
CCC,,20060803,10   

AAAがBBBになると、改ページして見出しと明細印字
BBBがCCCになると、改ページして見出しと明細印字

したいのですが・・・ブレイクの判定方法がよくわかりません。

 以上お手数おかけしますが教えて下さい。

【41282】Re:帳票印字においての改ページ
回答  Kein  - 06/8/3(木) 17:44 -

引用なし
パスワード
   このような「項目ごとの印刷」に向いているのは、編集機能のオプションを
うまく使う方法だと思います。
>改ページして見出しと明細印字
"明細"というのが、具体的に何なのか分からないので、仮にC列の集計結果
(個数の計)だとします。
以下のようなコードで出来ると思います。実際に実行する場合、まずテスト段階で
変更する必要があるところは、テキストの保存先フォルダーのパスで、定数 SvF
の値です。テスト時には印刷ではなく、改ページプレビューが七秒間表示されます。
結果がよければ With ActiveWorkbook.Worksheets(1) 〜 End With までの
>   Application.ScreenUpdating = True
>   ActiveWindow.View = xlPageBreakPreview
>   Application.Wait Time + TimeValue("00:00:07")
>   ActiveWindow.View = xlNormalView
を削除し、'.PrintOut Copies:=1 の先頭の "'" を消してコメント化を
解除し、プリンターの準備をしてから実行して下さい。

Sub Print_MyCSV()
  Dim FR As Range
  Dim MyF As String
  Const SvF As String = _
  "C:\Documents and Settings\User\My Documents"
 
  ChDir SvF
  With Application
   MyF = .GetOpenFilename("テキストファイル(*.csv),*.csv")
   If MyF = "False" Then Exit Sub
   .ScreenUpdating = False
   .DisplayAlerts = False
  End With
  Workbooks.Open MyF
  With ActiveWorkbook.Worksheets(1)
   On Error Resume Next
   .Range("A1", .Range("IV1").End(xlToLeft)).SpecialCells(4) _
   .EntireColumn.Delete
   On Error GoTo 0: If Err.Number <> 0 Then Err.Clear
   .Rows(1).Insert xlShiftDown
   .Range("A1:C1").Value = Array("Data1", "Data2", "Data3")
   .Range("A1").Subtotal 1, xlCount, Array(3), _
   True, True, xlSummaryAbove
   Set FR = .Range("A:A").Find("総合計", , xlValues)
   If Not FR Is Nothing Then
     FR.EntireRow.Hidden = True: Set FR = Nothing
   End If
   .Rows(1).Hidden = True
   Application.ScreenUpdating = True
   ActiveWindow.View = xlPageBreakPreview
   Application.Wait Time + TimeValue("00:00:07")
   ActiveWindow.View = xlNormalView
   '.PrintOut Copies:=1
   .Cells.EntireRow.Hidden = False
   .Cells.RemoveSubtotal
   .Rows(1).Delete xlShiftUp
   .DisplayAutomaticPageBreaks = False
   .Parent.Close False
  End With
  With Application
   .ScreenUpdating = True
   .DisplayAlerts = True
   ChDir .DefaultFilePath
  End With
End Sub

【41300】Re:帳票印字においての改ページ
発言  Jaka  - 06/8/4(金) 9:31 -

引用なし
パスワード
   よく解ってないんだけど、A列の内容が変わったところでプリントということでしたら...。
見出しはすでに1行目で設定してあるとして。

  Dim SavRw As Long, i As Long, CT As Long
  SavRw = 2
  For i = 2 To Range("A65536").End(xlUp).Row
    CT = CT + 1
    If Cells(i, 1).Value <> Cells(i + 1, 1).Value Then
      Cells(SavRw, 1).Resize(CT, 4).PrintPreview
      SavRw = i + 1
      CT = 0
    End If
  Next

【41301】Re:帳票印字においての改ページ
質問  質問(初心者A氏)  - 06/8/4(金) 9:34 -

引用なし
パスワード
   ありがとうございました。
やりたいことはできました。

現在の処理では、
1.csvファイル読込み
2.内容編集
3.印刷用シートに2.編集後データ貼り付け(見出し当セット済)
4.印字
しています。

3.の固定シートに内容貼り付けた場合でも教えてもらった
やり方を工夫すれば、要望した内容は可能でしようか?

もう少し教えて下さい。お願いします。

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