戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
印刷範囲の設定について

    [195320] 印刷範囲の設定について-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ NGZ46 -(2022/10/19(23:52))
    □U R L/
      出勤簿を作成するツールです。
      CSVデータを選び、ExcelのCSVシートに貼り付けそこから出勤簿を印刷。
      印刷後にCSV選択に戻るというロジックを組みました。
      
      @「wsS.ResetAllPageBreaks」がうまく作動しません。
      データの少ないCSVデータを選んだあとデータの多いCSVデータを選ぶと少ないデータの印刷範囲のままになってしまいます。
      
      ADo〜Loopが作動しません
      印刷が完了後にCSV選択に戻りたいのですがうまくいきません
      
      @Aをどうにも解消できません。ご意見アドバイスをいただければと思います。
      
      なお、該当ファイルはURLにございます。(ここへ書こうと思いましたが長くなりますので)
      firestorage.jp/download/e2b823f61a3d4f3a54540f76be0cff0ddccb4818
      
      
      ↓以下コード
      Sub ボタン2_Click()
      
      '出勤簿を選択
      
      MsgBox "出勤簿を選択してください"
      
      Dim nhD As String
      Dim wbN As Workbook
      Dim wsN As Worksheet
      Dim wsS As Worksheet
      
      Do
      nhD = Application.GetOpenFilename(FileFilter:="CSVファイル,*.csv")
      
      If nhD <> "False" Then
          Application.ScreenUpdating = False
          
          Workbooks.Open nhD
          
          Set wbN = ActiveWorkbook
          Set wsN = ThisWorkbook.Worksheets("CSV")
          Set wsS = ThisWorkbook.Worksheets("出勤簿")
      
      'ACSVシートをすべて削除
      If wsN.FilterMode Then
       wsN.ShowAllData
       
      End If
       
       Dim maxRow1 As Long
       maxRow1 = wsN.Cells(Rows.Count, 1).End(xlUp).Row
       
       wsN.Range("A1:CZ" & maxRow1).Value = ""
       
       'BCSVシートに貼り付け
       Dim maxRow2 As Long
       maxRow2 = wbN.Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row
       wsN.Range("A1:CZ" & maxRow2).Value = wbN.Worksheets(1).Range("A1:CZ" & maxRow2).Value
       wbN.Close
       Sheets("CSV").Select
       
       'C勤務日を昇順でソート
       Range("A1:CA" & maxRow2).Sort _
                   Key1:=Range("A1"), Order1:=xlAscending, _
                   Header:=xlYes
                   
         Sheets("出勤簿").Select
         Application.ScreenUpdating = True
      Else
         MsgBox "キャンセルされました"
      End If
      
      'D印刷範囲の設定
      With ActiveSheet
      With .PageSetup
      .PrintTitleRows = "$1:$4"
      .PrintArea = Range("B1", Cells(Rows.Count, "B").End(xlUp)).Resize(, 3).Address
      .Orientation = xlPortrait '縦長
      End With
      
          wsS.ResetAllPageBreaks
          StartRow = 5
          FinalRow = Cells(Rows.Count, 1).End(xlUp)
          LastVal = Cells(StartRow, 1).Value
          
          For i = StartRow To FinalRow
          ThisVal = Cells(i, 1).Value
          If Not ThisVal = LastVal Then
          ActiveSheet.HPageBreaks.Add before:=Cells(i, 1)
          End If
          
          LastVal = ThisVal
          Next i
        End With
       
        Range("A:A").AutoFilter field:=1, Criteria1:="<>"
        If Cells(Rows.Count, "A").End(xlUp).Row > 1 Then
        
        End If
      
      'E印刷
      msg = MsgBox("印刷しますか?", Buttons:=vbYesNo)
      If msg = vbYes Then
      wsS.PrintOut
      Else
      End If
      
      MsgBox ("引き続き印刷しますか?"), vbYesNo + vbQuestion
      If vbNo Then Exit Do
      Loop
      
      End Sub
      
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他



      ++++++++++++++++++++
      OS      ⇒OTHER
      Version⇒OTHER
      ++++++++++++++++++++




    [195321] Re[1]: 印刷範囲の設定について-

    記事引用/メール受信=OFF■

    □投稿者/ マナ -(2022/10/20(05:38))
    □U R L/
      >「wsS.ResetAllPageBreaks」がうまく作動しません。
      
      >FinalRow = Cells(Rows.Count, 1).End(xlUp)
      
       FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
                                                ~~~~~
      では?
      
      
      
      >Do〜Loopが作動しません
      
      >msg = MsgBox("印刷しますか?", Buttons:=vbYesNo)
      >If msg = vbYes Then
      
      ↑と↓で、なぜ違う書き方なのでしょうか。
      
      >MsgBox ("引き続き印刷しますか?"), vbYesNo + vbQuestion
      >If vbNo Then Exit Do
      
      
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [195322] Re[2]: 印刷範囲の設定について-

    保留中です・・・ / 記事引用/メール受信=OFF■

    □投稿者/ NGZ46 -(2022/10/20(08:01))
    □U R L/

      ご対応ありがとうございます。

      FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
      です。

      すいません。
      特に意味はありません。
      色々調べてコピペで作ったもので
      型はそろえた方が良いですよね?

      msg2 = MsgBox("引き続き印刷しますか?", Buttons:=vbYesNo)でしょうか?




    [195323] Re[3]: 印刷範囲の設定について-

    記事引用/メール受信=OFF■

    □投稿者/ マルチ -(2022/10/21(02:46))
    □U R L/

      投稿者 : MTNR 投稿日時 : 2022/10/19(Wed) 23:56:39

      ht tps://www.239-programing.com/cgi-bin/excelvba_bbs.cgi?id=1062



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G