Excel VBA の実行時エラー辞典
実行時エラー '75':パス/ファイルのアクセス エラー
パスの形式や読み取り専用属性など、ファイルへのアクセス条件を確認します。
よくある原因
- フォルダのパスをファイル名として Open に渡しています。
- 読み取り専用の既存ファイルへ書き込もうとしています。
- 相対パスの組み立てが崩れ、意図した場所へアクセスできません。
直し方
- 組み立て後のパスを表示し、最後にファイル名があるか確認します。
- 親フォルダの存在とアクセス権、既存ファイルの読み取り専用属性を確認します。
- 用途に合う書き込み可能なファイル名を指定し、まず練習用の小さな出力で試します。
元のブックや入力ファイルを残し、コピーで試してください。以下は一つの原因を扱う例です。Sub 全体を示していないコードは、練習用の Sub の中に記述します。
C:\VbaPractice が既存のフォルダで、result.txt に追記できる場合の例です。番号は停止した操作や OS の状態によって変わることがあります。
修正前
Dim fileNo As Integer
fileNo = FreeFile
Open "C:\VbaPractice" For Append As #fileNo
Close #fileNo
修正後
Dim fileNo As Integer, filePath As String
filePath = "C:\VbaPractice\result.txt"
fileNo = FreeFile
Open filePath For Append As #fileNo
Print #fileNo, "確認用"
Close #fileNo
調べ方
- エラー画面の「デバッグ」が使える場合は押し、黄色で止まった行とメッセージ全文を記録します。Windows では Alt+F11 で VBE を開けます。
- 停止行の少し前を選び、F9 でブレークポイントを設定します。再実行して止めたら、F8 で一行ずつ進めます。
- パス文字列、停止した命令、ファイル属性を一緒に調べます。
- Ctrl+G でイミディエイトウィンドウを開き、下の式を入力して Enter を押します。例の変数があるプロシージャ内で停止し、変数名は自分のコードに合わせてください。
? filePath
Err の情報はエラーが起きた直後に確認します。修正後は、正常な入力と問題が起きた入力の両方で結果を照合してください。