[[20230326105839]] 『調整』(t) ページの最後に飛ぶ

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

 

『調整』(t)

 フォルダ内のファイルの全シートに設定しようとしましたが、各シートの左端のシートのみ設定になります。初心者でしてご教示お願いいたします。

 Sub 体裁の調整()   

    Dim Path As String
    Dim FName As String
    Dim ws As Worksheet

 Dim minRow As Long
 Dim minCol As Long
 Dim maxRow As Long
 Dim maxCol As Long

 Dim cnt As Long

    'ファイル名取得するフォルダパス
    Path = "C:\Users\\Desktop\\"
    FName = Dir(Path & "*.xlsx")  

    'Loopでファイルを取得→開く→処理→保存→閉じる
    Do While FName <> ""
       Workbooks.Open Path & FName

 For Each ws In Worksheets
 ws.Activate

'印刷範囲

 With ActiveSheet
 If .PageSetup.PrintArea <> "" Then
 minRow = .Range(.PageSetup.PrintArea).Row
 minCol = .Range(.PageSetup.PrintArea).Column
 maxRow = .Range(.PageSetup.PrintArea).Rows.Count + .Range(.PageSetup.PrintArea).Row - 1
 maxCol = .Range(.PageSetup.PrintArea).Columns.Count + .Range(.PageSetup.PrintArea).Column - 1

 ' 印刷範囲以外の下・左の値のクリア
 If maxRow + 1 <= 65536 Then
 .Rows(maxRow & ":65536").Clear
 End If
 If maxCol + 1 <= 256 Then
 .Range(.Cells(maxCol + 1), .Cells(256)).EntireColumn.Clear
  
    ’体裁を整える

         ActiveWindow.ScrollRow = 1 '縦スクロールを上に
         ActiveWindow.ScrollColumn = 1 '横スクロールを左に
         ActiveWindow.View = xlNormalView '改ージプレビュー解除

        ws.Range("D3").Select  'セルD3選択
    Sheets(1).Select  '左端のシートを選択

 End If

       ActiveWorkbook.Save
       ActiveWorkbook.Close

       FName = Dir()

 End If
 End With
 Next ws

 Loop

 End Sub

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


 >"C:\Users\\Desktop\\"

 間違っているし
 そもそも2003以前のコードと見られ・・・。
 初心者というより作ってもらってから、その間何もやってこなかった
 って、感じですかね。
(疑疑) 2023/03/26(日) 11:54:02

 >                        ws.Range("D3").Select  'セルD3選択
 >                        Sheets(1).Select  '左端のシートを選択  ’←無意味では?
 >                    End If
 >                    ActiveWorkbook.Save             ’←早すぎる
 >                    ActiveWorkbook.Close            ’←早すぎる
 >                    FName = Dir()               ’←早すぎる
 >                End If
 >            End With
 >        Next ws
 >   Loop

 1枚目を処理後、直ぐ閉じているので、1枚目しか実行されない。

 こうじゃないかなぁ。。(テストしてないです。悪しからず)

                         ws.Range("D3").Select  'セルD3選択
                     End If
                 End If
             End With
         Next ws

         '全シートの処理が終わったら、当該ブックのクローズ処理に入る
         Sheets(1).Select  '左端のシートを選択
         ActiveWorkbook.Save
         ActiveWorkbook.Close
         FName = Dir()
     Loop

(半平太) 2023/03/26(日) 12:33:59


 半平太 様
 ありがとうございます。
 ご説明いただき大変、勉強になりました。
 感謝しています。

(t) 2023/03/26(日) 13:34:36


コメント返信:

[ 一覧(最新更新順) ]


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