Excel VBAを活用してファイル名にセキュリティレベルを追加する方法

Excel VBAは、Excelの作業を効率化するための強力なツールです。その中でも、特定のファイルのセキュリティレベルを表す情報をファイル名に追加する処理は、多くのビジネスシーンで有効活用されています。本記事では、この処理のVBAコードとその詳細な解説、さらに応用例を3つ紹介します。

目次

Excel VBAの基本

Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。

そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

基本的な処理のコード


Sub AddSecurityLevelToFilename()

    Dim ws As Worksheet
    Dim securityLevel As String
    Dim newFilename As String

    ' シートの参照
    Set ws = ThisWorkbook.Sheets("Sheet1")

    ' セキュリティレベルの取得
    securityLevel = ws.Range("A1").Value

    ' 新しいファイル名の生成
    newFilename = ThisWorkbook.Name & "-" & securityLevel & ".xlsx"

    ' ファイル名の変更
    ThisWorkbook.SaveAs Filename:=newFilename

End Sub

コードの詳細解説

このVBAコードの目的は、指定されたセキュリティレベルを現在のファイル名に追加することです。具体的には以下のステップに分けられます。

1. シートの参照:`Sheet1`を対象としています。
2. セキュリティレベルの取得:セルA1に記載されているセキュリティレベルを取得します。
3. 新しいファイル名の生成:現在のファイル名にセキュリティレベルを追加して新しいファイル名を生成します。
4. ファイル名の変更:生成した新しいファイル名でファイルを保存します。

応用例

1. 複数のシートからセキュリティレベルを取得


Sub AddSecurityLevelFromMultipleSheets()

    Dim ws As Worksheet
    Dim securityLevel As String
    Dim newFilename As String

    ' 全てのシートをループ
    For Each ws In ThisWorkbook.Sheets
        ' セキュリティレベルの取得
        securityLevel = securityLevel & ws.Range("A1").Value & "-"
    Next ws

    ' 新しいファイル名の生成
    newFilename = ThisWorkbook.Name & "-" & securityLevel & ".xlsx"

    ' ファイル名の変更
    ThisWorkbook.SaveAs Filename:=newFilename

End Sub

解説

このコードは、すべてのシートのセルA1からセキュリティレベルを取得し、それらをハイフンでつないだ形でファイル名に追加します。

2. ファイルのバックアップを取りながらセキュリティレベルを追加


Sub AddSecurityLevelWithBackup()

    Dim ws As Worksheet
    Dim securityLevel As String
    Dim newFilename As String
    Dim backupFilename As String

    ' シートの参照
    Set ws = ThisWorkbook.Sheets("Sheet1")

    ' セキュリティレベルの取得
    securityLevel = ws.Range("A1").Value

    ' 新しいファイル名の生成
    newFilename = ThisWorkbook.Name & "-" & securityLevel & ".xlsx"
    backupFilename = "Backup-" & ThisWorkbook.Name & ".xlsx"

    ' バックアップとして現在のファイルを保存
    ThisWorkbook.SaveAs Filename:=backupFilename

    ' 新しいファイル名で再保存
    ThisWorkbook.SaveAs Filename:=newFilename

End Sub

解説

セキュリティレベルを追加する前に、現在のファイルをバックアップとして別名で保存します。

3. 特定のセキュリティレベルがある場合のみファイル名を変更


Sub ChangeFilenameForSpecificSecurityLevel()

    Dim ws As Worksheet
    Dim securityLevel As String
    Dim newFilename As String

    ' シートの参照
    Set ws = ThisWorkbook.Sheets("Sheet1")

    ' セキュリティレベルの取得
    securityLevel = ws.Range("A1").Value

    If securityLevel = "High" Then
        ' 新しいファイル名の生成
        newFilename = ThisWorkbook.Name & "-" & securityLevel & ".xlsx"
        ' ファイル名の変更
        ThisWorkbook.SaveAs Filename:=newFilename
    End If

End Sub

解説

セキュリティレベルが“High”の場合のみ、ファイル名を変更します。それ以外の場合は、ファイル名を変更しません。

まとめ

Excel VBAを活用して、ファイルのセキュリティレベルをファイル名に追加することは、情報管理の観点から非常に有用です。特に、大量のファイルを扱うビジネスシーンでは、このような自動化は業務効率の向上に大きく貢献します。今回紹介した基本的なコードや応

用例を参考に、自身のニーズに合わせてカスタマイズしてみてください。

VBAも良いけどパワークエリも良い

VBAの解説をしてきましたが、VBAは正直煩雑でメンテナンス性が悪いです。最近はモダンExcelと呼ばれるパワークエリやパワーピボットへのシフトが進んできています。本サイトでもパワークエリの特集をしており、サンプルデータを含む全11回の学習コンテンツでパワークエリを習得することができます。

クリックするとパワークエリの全11講座が表示されます。

パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください

コメント

コメントする

目次