概要

ChDrive関数は、VBA(Visual Basic for Applications)で現在の作業ドライブを変更するための関数です。これにより、作業するファイルの読み書きの対象となるドライブを動的に切り替えることができます。ChDriveは特に異なるドライブにあるファイルにアクセスする場合に便利です。

構文

ChDrive ドライブ

パラメータ

  • ドライブ

    変更したいドライブを指定します。指定はドライブ文字(例: "C")で行います。ドライブ文字は大文字・小文字を区別しません。

使用例

基本的な使用例

以下の例では、現在の作業ドライブをDドライブに変更しています。

Sub ChangeDriveExample()
    ' Dドライブに変更
    ChDrive "D"
    MsgBox "現在のドライブがDに変更されました。"
End Sub

ドライブ指定の変数を使う

変数を使用して変更したいドライブを指定することも可能です。

Sub ChangeDriveWithVariable()
    Dim targetDrive As String
    targetDrive = "E" ' 任意のドライブ文字を指定

    ' 指定したドライブに変更
    ChDrive targetDrive
    MsgBox "現在のドライブが " & targetDrive & " に変更されました。"
End Sub

ChDriveとChDirの組み合わせ

異なるドライブへのディレクトリ変更を行うには、まずChDriveでドライブを変更し、その後にChDirを使ってディレクトリを変更します。

Sub ChangeDriveAndDirectory()
    ' ドライブをEに変更
    ChDrive "E"

    ' Eドライブのフォルダに移動
    ChDir "E:\Projects"
    MsgBox "EドライブのProjectsフォルダに変更されました。"
End Sub

注意点

  • 存在しないドライブを指定するとエラーが発生

    ChDriveは、実際に存在しないドライブやアクセス権限のないドライブを指定するとInvalid procedure callエラーが発生します。

  • ネットワークドライブの指定に注意

    ネットワークドライブはマップされている必要があります。マップされていないネットワークパスを直接指定することはできません。

  • アクセス権限の問題

    一部のドライブでは、ユーザーにアクセス権限がない場合があります。特に管理者権限が必要な場合は、事前に権限確認が必要です。

実用例

ファイルの保存先を変更する際のドライブ変更

指定したドライブにファイルを保存するため、事前に作業ドライブを変更します。

Sub SaveFileInDifferentDrive()
    ' ドライブをFに変更
    ChDrive "F"

    ' Fドライブにファイルを保存
    ActiveWorkbook.SaveAs Filename:="F:\Reports\MonthlyReport.xlsx"
    MsgBox "ファイルがFドライブに保存されました。"
End Sub

安全なドライブ変更のためのエラーハンドリング

エラーハンドリングを追加することで、存在しないドライブ指定の際にエラーメッセージを表示します。

Sub SafeChangeDrive()
    On Error GoTo ErrorHandler

    ' 存在するドライブに変更
    ChDrive "G"
    MsgBox "ドライブが変更されました。"
    Exit Sub

ErrorHandler:
    MsgBox "ドライブの変更中にエラーが発生しました。存在しないドライブです。"
End Sub

まとめ

ChDrive関数は、VBAで現在の作業ドライブを効率よく切り替えるための重要な機能です。ファイル操作の際にドライブ指定を柔軟に行うことで、スクリプトの利便性が向上します。ただし、指定するドライブの存在確認やアクセス権限には十分な注意が必要です。ChDriveChDirを組み合わせることで、さらに詳細なディレクトリ指定が可能になります。