ExcelVBA

Excel VBAでファイルパスに255文字を超える文字列を指定してみた

Excel VBAでは、255文字を超える文字列を指定すると、プログラムが動かなくなる場合があるので注意が必要である。

今回は、前回作成したプログラムを、編集ファイル名で、255文字を超える文字列・255文字の文字列を指定した場合で動作を行ってみたので、その確認結果を共有する。

前提条件

下記記事の実装が完了していること。

Excel VBAで指定したエクセルファイルを編集する処理を実装してみたExcel VBAでは、他のエクセルファイルを開き、編集し、保存するような処理を実装することができる。今回は、その処理を行うサンプルプロ...

やってみたこと

  1. 編集ファイル名に256文字を指定した場合の実行結果
  2. 編集ファイル名に255文字を指定した場合の実行結果

編集ファイル名に256文字を指定した場合の実行結果

編集ファイル名に256文字を指定した場合の実行結果は、以下の通りで、エラーが発生する。

1) 前回作成したファイル「EditExcel.xlsm」を開き、「編集ファイル名」で256文字のファイルパスを指定し、「編集」ボタンを押下
256文字を指定した場合の実行結果_1_1

上記「編集ファイル名」で指定した内容は、以下の通りで、256文字になっている
256文字を指定した場合の実行結果_1_2

2) 以下のように、Openメソッド実行時にエラーになることが確認できる。ここで「デバッグ」ボタンを押下
256文字を指定した場合の実行結果_2_1

デバッグすると、以下のように、「Workbooks.Open」メソッドの位置で中断していることが確認できる
256文字を指定した場合の実行結果_2_2

編集ファイル名に255文字を指定した場合の実行結果

編集ファイル名に255文字を指定した場合の実行結果は、以下の通りで、正常に動作する。

1) 前回作成したファイル「EditExcel.xlsm」を開き、「編集ファイル名」で255文字のファイルパスを指定し、「編集」ボタンを押下
255文字を指定した場合の実行結果_1_1

上記「編集ファイル名」で指定した内容は、以下の通りで、255文字になっている
255文字を指定した場合の実行結果_1_2

2) 以下のように、編集完了メッセージが表示されることが確認できる
255文字を指定した場合の実行結果_2

要点まとめ

  • Excel VBAでは、255文字を超える文字列を指定すると、プログラムが動かなくなる場合があるので注意が必要である。