ゆとり社会人の読書ノート&エクセルVBA

素人が公法を中心に幅広く読書をします&エクセルVBA奮闘記です。

私の個人用マクロブック

私が実際に使用している個人用マクロブックのコードを公開します。

個人用マクロブックの中から、実際に私がよく使っているものを公開します。

こんなに簡単なマクロでも日々の業務が楽になるので、とても助かっています。

下記、ちょっとした解説とともにコードを載せていきます。

Sub 黄色()
 
    Application.ScreenUpdating = False
   
   ' 単一セルの場合
   If Selection.Count = 1 Then
        If ActiveCell.Interior.Color = xlNone Or _
            ActiveCell.Interior.Color = RGB(255, 255, 255) Or _
            ActiveCell.Interior.Color = 0 Then
            ActiveCell.Interior.Color = RGB(255, 255, 0)
        Else
            ActiveCell.Interior.Color = xlNone
        End If
       
   ' 複数セルの場合
    Else
       
        If Selection.SpecialCells(xlCellTypeVisible).Interior.Color = xlNone Or _
            Selection.SpecialCells(xlCellTypeVisible).Interior.Color = RGB(255, 255, 255) Or _
            Selection.SpecialCells(xlCellTypeVisible).Interior.Color = 0 Then
            Selection.SpecialCells(xlCellTypeVisible).Interior.Color = RGB(255, 255, 0)
        Else
            Selection.SpecialCells(xlCellTypeVisible).Interior.Color = xlNone
        End If

   End If
   
    Application.ScreenUpdating = True
   
   End Sub

このマクロは、セルの色を黄色にするのに使っています。本当はいけないんですが、実務ではセルの色に特定の情報を持たせてしまうことはよくあることかと思います。

私の場合は業務上、セルの色を黄色にする作業がかなり多く発生するので、一番助かっている個人用マクロになります。

実際には、OnKeyメソッドで、Ctrl+Qに上記マクロを割り当てて使っています。

Sub 改ページ削除()

Application.ScreenUpdating = False

Dim i As Long

For i = 1 To Worksheets.Count
    Worksheets(i).ResetAllPageBreaks
Next i

Application.ScreenUpdating = True

End Sub

知らず知らずにうちに、ワークシートに改ページが表示される際に、それを消すためのマクロです。

あまり使いません。。。

Sub 桁区切()

Application.ScreenUpdating = False

Selection.NumberFormatLocal = "#,##0;[赤]▲#,##0;-"

Application.ScreenUpdating = True

End Sub
Sub 年月日()

Application.ScreenUpdating = False

Selection.NumberFormatLocal = "yyyy/mm/dd"

Application.ScreenUpdating = True

End Sub

桁区切りと年月日は多用しています。数字と年月日の表記は統一させておきたいと強く思っており、自分が一番見やすい表示形式がすぐに設定できるように個人用マクロブックに入れてあります。

Sub 画面描写再開()

Application.ScreenUpdating = True

End Sub

マクロを実行していると、たまに画面描写が再開されなくなることがあります。私は、OnKeyメソッドでShift+F1に上記マクロを割り当てており、画面描写が止まってしまった際にすぐ使えるようにしています。

Sub シート再表示()
    Application.ScreenUpdating = False
   
    Dim wbname As String, ws As Worksheet
   
    wbname = InputBox("Bookのファイル名を記入してください。")
    For Each ws In Workbooks(wbname).Worksheets
        ws.Visible = True
    Next
   
    Application.ScreenUpdating = True

End Sub

エクセルファイルがやけに重いなと思ったときに、シートが大量に非表示になっていることがよくあります。また、非表示シートに機密情報が入っていたりしないか確認する際にも使います。業務効率化だけでなく、リスク管理の面からも、このマクロにはお世話になっています。