見出し画像

【マクロ入門#6】Excel VBAでのデスクトップ上のフォルダ操作:作成・名前変更・削除

 このブログでは、エクセルのマクロについて、ゼロからコードを書くのではなく、すでに存在するコードを読み、理解し、そして自分の業務に応じて組み合わせる方法を学んでいきます。
 プログラミングの知識がなくても、コードの意味を読み取ることで、業務効率を劇的に向上させることができます。
 目標は、コードを書けるようになることではなく、必要なコードを見つけ、それを自分の目的に合わせて使いこなせるようになることです。
 日々の業務で役立つマクロの活用方法を、一緒に学んでいきましょう。


はじめに

 Excel VBAでは、Excelシートの操作だけでなく、デスクトップ上の操作も可能です。Excel VBAを使用することで、一度に大量のフォルダを操作する場合、フォルダの作成や名前の変更、削除などを自動化することができます。
 この記事では、まずは、デスクトップ上を操作を行うために必要な、フォルダパスの理解とその取得方法について紹介します。
 その後、デスクトップ上へのフォルダの作成、名前変更、削除の基本的な操作をプログラムから行う方法を解説します。


フォルダパスの基本と取得方法

 フォルダパスとは、ファイルシステム内のフォルダの位置を示すアドレスです。これには絶対パスと相対パスの二種類があります。VBAでは、特定のフォルダのパスを動的に取得することが多く、特にユーザーごとのデスクトップパスなどを取得する際には環境変数を使用します。

  • 絶対パス: ドライブのルートからファイルまでの完全なパスを示します。例えば、「C:\Users\YourUsername\Desktop\example.txt」はデスクトップ上の「example.txt」ファイルへの絶対パスです。

  • 相対パス: 現在のディレクトリに対してファイルの位置を指定します。例えば、現在のフォルダが「C:\Users\YourUsername\Documents」であれば、「..\Desktop\example.txt」とすることでデスクトップ上の「example.txt」を指すことができます。


ユーザー名の取得方法

 スクリプト内で特定のユーザー名やフォルダを指定するには、システムからその情報を取得する方法があります。ユーザー名を自動取得することで、スクリプトがより汎用性を持ち、異なるユーザー環境でも正確に動作します。

  • ユーザー名の取得方法:

Sub ユーザー名の取得()

       'ユーザーネームの取得
    Dim username As String
    username = Environ("USERNAME")

       '取得したユーザーネームのメッセージ表示
    MsgBox username

End Sub

 このコードは、Windowsの環境変数からユーザー名を取得し、メッセージボックスで表示します。


フォルダパスの取得方法

  • デスクトップパスの取得:

Sub デスクトップパスの取得() 

       'デスクトップパスの取得
        Dim desktopPath As String
        desktopPath = "C:\Users\"& Environ("USERNAME") & "\Desktop\"

       '取得したデスクトップパスのメッセージ表示
        MsgBox desktopPath

End Sub

 このコードは、現在のユーザーのデスクトップフォルダのパスを取得します。このパスを基にしてフォルダの作成、名前の変更、削除などの操作を行うことができます。


フォルダの作成

 新しいフォルダを作成するには、<MkDir>関数を使用します。この関数を使って、指定したパスに新しいフォルダを作成できます。

  • フォルダ作成のVBAコード例:

Sub フォルダ作成()

        'デスクトップパスの取得
    Dim DesktopPath As String
    DesktopPath = "C:\Users\"& Environ("USERNAME") & "\Desktop\"

        ’新しく作成するフォルダ名の指定
    Dim folderPath As String
    folderPath = DesktopPath & "旧フォルダ"

        ’フォルダの作成
        MkDir folderPath

        ’フォルダ作成後のメッセージ表示
    MsgBox "フォルダが作成されました"

End Sub


フォルダの名前変更

 フォルダの名前を変更するには、<Name>ステートメントを使用します。これにより、指定したフォルダの名前を新しい名前に変更することができます。

  • フォルダ名変更のVBAコード例:

Sub フォルダ名変更()

        'デスクトップパスの取得
    Dim DesktopPath As String
    DesktopPath = "C:\Users\"& Environ("USERPROFILE") & "\Desktop\"

        ’名前を変更するフォルダの指定
    Dim oldName As String
    oldName = DesktopPath & "旧フォルダ"

        ’変更後のフォルダ名の指定
    Dim newName As String
    newName = DesktopPath & "新フォルダ"

        ’フォルダ名の変更
    Name oldName As newName

        ’フォルダ名変更完了のメッセージ        
        MsgBox "フォルダ名を変更しました"
    
End Sub


フォルダの削除

 不要になったフォルダを削除するには、<RmDir>関数を使用します。この関数により、指定したパスのフォルダを削除することができます。

  • フォルダ削除のVBAコード例:

Sub フォルダ削除()

        'デスクトップパスの取得
    Dim DesktopPath As String
    DesktopPath = "C:\Users\"& Environ("USERPROFILE") & "\Desktop\"

        ’削除するフォルダの指定
    Dim folderPath As String
    folderPath = DesktopPath & "新フォルダ"

        ’フォルダの削除
    RmDir folderPath

         ’フォルダ削除完了のメッセージ
     MsgBox "フォルダを削除しました"

End Sub


まとめ

【振り返り】
■ ユーザー名の取得:Environ("USERNAME")
■ フォルダ作成;MkDir
■ フォルダ名変更:Name
■ フォルダ削除:RmDir

 Excel VBAを利用することで、デスクトップ上のフォルダの作成、名前の変更、削除といった操作を自動化できます。これらの操作を自動化することで、ファイル管理の効率を大幅に向上させることが可能です。

 次回は、デスクトップ上のファイルの操作について解説していきます。ぜひ、チェックしてみてください。

次回予告
・【マクロ入門#7】Excel VBAでの出力操作の基本:印刷・PDF出力

この記事が気に入ったらサポートをしてみませんか?