VBAの先頭行固定がうまくいかない

実現したいこと

シート別にファイル保存をして1行目を色付けて先頭行で固定する

発生している問題・分からないこと

Excelのシート1に貼り付けた内容をシート2以降にfilter関数で反映させてます。

シート1以外のA2に入力したfilter関数でエラーが出たシート以外をシート別にファイル保存し、1行目(A1〜T1)を黄色で色付けしつつ固定するVBAコードを入力しましたが、先頭行で固定できずに別の列や行で固定されてしまいます。

当方勉強中のため、お助けいただけると幸いです

該当のソースコード

VBA

1Sub CreateFilesBasedOnSheet() 2 3 Dim ws As Worksheet 4 5 Dim newWorkbook As Workbook 6 7 Dim newWorksheet As Worksheet 8 9 Dim rangeToCopy As Range 10 11 Dim fileName As String 12 13 Dim lastColumn As Long 14 15 16 17 ' シートごとに処理を行う 18 19 For Each ws In ThisWorkbook.Sheets 20 21 ' 1シート目はスキップする 22 23 If ws.Index > 1 Then 24 25 ' 2行目の関数がエラーでない場合のみ処理を続ける 26 27 If Not IsError(ws.Cells(2, 1).Value) Then 28 29 ' A1からT列の範囲を取得 30 31 lastColumn = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column 32 33 Set rangeToCopy = ws.Range("A1:T" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row) 34 35 36 37 ' 新しいブックを作成し、データを貼り付け 38 39 Set newWorkbook = Workbooks.Add 40 41 Set newWorksheet = newWorkbook.Sheets(1) 42 43 rangeToCopy.Copy 44 45 newWorksheet.Range("A1").PasteSpecial Paste:=xlPasteValues 46 47 48 49 ' 列幅を自動調整 50 51 newWorksheet.Columns.AutoFit 52 53 54 55 ' 1行目を固定 56 57 newWorksheet.Rows("1:1").Select 58 59 ActiveWindow.FreezePanes = True 60 61 62 63 ' 色を設定 64 65 newWorksheet.Range("A1:T1").Interior.Color = RGB(255, 255, 0) ' 黄色 66 67 68 69 ' ファイル名を作成 70 71 fileName = ThisWorkbook.Path & "\" & ws.Name & ".xlsx" 72 73 74 75 ' 新しいファイルに保存 76 77 newWorkbook.SaveAs fileName 78 79 newWorkbook.Close False 80 81 End If 82 83 End If 84 85 Next ws 86 87End Sub

試したこと・調べたこと

上記の詳細・結果

teratailにて似たような事例を探しましたが分かりませんでした

補足

特になし

コメントを投稿

0 コメント