[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『調整』(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.