2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Excelシート整頓マクロ

Posted at

はじめに

初心者エンジニアです。
日々勉強して学んだこと、教わったことをメモ書きのように書き残す感じで書き残していきたいと思ってます。

本題

今回は、現在の上長から教えてもらった「めっちゃ便利!」と思ったVBAマクロです。

これは、日々の業務でドキュメントや一覧表などを作成、変更などをした場合に編集直後のままで保存していた際に教わった整頓マクロです。
次にそのExcelファイルを開いた人のためを思い、全シートのアクティブセルの位置を「A1」に移動させ、最初のシートに戻ってくるマクロです。

selectA1.bas
Sub SelectA1()

    'エラーは無視
    On Error Resume Next
    
    Call BeforeSelectA1
    
    Dim wb As Workbook
    Dim ws As Worksheet
    '選択中のブックが対象
    Set wb = ActiveWorkbook
    
    For Each ws In wb.Worksheets
        ws.Activate
        ws.Cells(1, 1).Activate
    Next
        
    Call AfterSelectA1
        
    wb.Worksheets(1).Activate
End Sub
'----------------------------------------
Function BeforeSelectA1()
    
    With Application
        .EnableEvents = False
        .DisplayAlerts = False
        .Calculation = xlCalculationManual
    End With

End Function
'----------------------------------------
Function AfterSelectA1()

    With Application
        .EnableEvents = True
        .DisplayAlerts = True
        .Calculation = xlCalculationAutomatic
        .CutCopyMode = False
    End With

End Function

マクロ起動直後にエラーが起きても無視して最後まで処理を通すようにしています。

    'エラーは無視
    On Error Resume Next

また、処理を行う前に自動イベントや自動計算、メッセージの表示が発生しないようにしています。(処理後に戻します。)
他のマクロや計算を一時的に止めて処理を軽くする効果があるそうで。
エラーが発生しないようにしつつ、途中で止まらず最後まで処理がスムーズに通るようにしているそうです。

Function BeforeSelectA1()    
    With Application
        .EnableEvents = False
        .DisplayAlerts = False
        .Calculation = xlCalculationManual
    End With
End Function
Function AfterSelectA1()
    With Application
        .EnableEvents = True
        .DisplayAlerts = True
        .Calculation = xlCalculationAutomatic
        .CutCopyMode = False
    End With
End Function

本処理としては簡単。
選択中のブックのシートをFor文で回して全シートのアクティブセルをA1に移動させているだけです。

おわりに

作成物を確認してもらうことや共有物を更新することもあり、多少なりともエクセルを開いた瞬間の見栄えは良い方がいいと思うし、次開くのが自分でも開いた瞬間が整っていた方がいいです。
実際に教えられてから大活躍してます。
マクロにショートカットキーを割り当てれば楽々です。
教えてくれた上長に感謝です。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?