• ベストアンサー

エラー5:プロシージャの呼出しまたは引数が不正です

お世話になります。 以前解決しました http://okwave.jp/qa/q7131441.html の回答の下の方に .add type:=xlvalidatelist, formula1:=left(s, len(s)-1) とありますが これがよく理解できません。いくつか調べた後の素人考えで 「入力規則に検索済ファイル名の左から文字数-1」?かな?と。 マクロを実行するとこの行が原因で"時々"エラー5を返します。 「プロシージャの呼出しまたは引数が不正です」。 必ずではないのですが7割程度の確立で出ます。 上記の説明だけでエラーが理解できましたら対処案をご教示ください。 ちなみにエクセル2002と2003で確認しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

「指定のフォルダ」の指定が間違っていると,そのエラーが起こります。 また,指定のフォルダが正しくてもそこに目的のファイルが無いと,やはりそのエラーが起こります。 マクロで指定した「ファイルの種類(拡張子)」が実は間違っていた場合にも,そのエラーになります。 では暫定的に,エラーが起きる.addの行の一つ前に if s = ""then exit sub と追記し,(プルダウンに載せるべき正しい)ファイルが拾えなかった場合は,入力規則を設定させないようにしましょう。

OKBob
質問者

お礼

ご指摘の通り、空フォルダが原因だったようです。 作業簡素化の為に入力規則の設定は必要でしたので 対策として、リストにあえて常時表示するメッセージ (「この中から選んでください」みたいなもの)を その拡張子で作成しておく事にしました。 ありがとうございました。

OKBob
質問者

補足

早々に回答頂きありがとうございます。 今はもう帰路で確認できないのですが、 確かに指定ファイル(拡張子)が無い時や、フォルダが空の場合があります。(別ソフトで作成された3種(拡張子)のファイルが混在し、所望ファイルのみをエクセル化して別フォルダへ保存したらその元ファイル1種は削除しますの) この時におきているという事ですね? 明日確認してみます。 ただ、1回エクセルを閉じて再起動させたらエラーが出なかった時もあった(・・・確か?)のが少し気になります。 明日、このパターンも含め色々試してみます。ありがとうございます。

関連するQ&A