実行時エラー"5"(プロシージャーの呼び出し、または引数が不正)が発生するが?
Question 058k 拙著「組み方講座」 Previous Next
100ページ [動作確認]
詳細は こちら
貴書100ページにあるような画面を開くマクロを作成するべく、貴書を参考にマクロを作成していたのですが、
「ムツゴロウ漁獲高の推移」をクリックすると、マクロコードの ChDrive ドライブの箇所が黄色くなり、「プロシージャの呼び出しまたは引数が不正です」と表示されます。
なお、「管理表」のB列の「c」は半角にしています。
ファイルをお送りします。ご指導お願い致します。
Answer   Copyright (C) 2006.12.20 永井善王
拙著「Excel VBA マクロ組み方講座」をご購読いただき、ありがとうございます。
エラーダイアログ
右上図にある[デバッグ]ボタンをクリックしたら、右中図のように表示されたのですね。

エラーの原因は、エラーメッセージにあるとおり
 A. プロシージャの呼び出しの不正
 B. 引数の不正  の どちらかになりそうです。

しかし、その意味を理解して問題点を修正することは、なかなか大変かも知れませんね。

回答に入りますが、あなたが作成されたファイルを見ることができましたので、結論からご説明します。

不具合1. 「管理表」シートのB列の「c」について
あなたは半角の「c」を入力し、ちょっと気がかりのようですが、正しくは英数の「c」です。
Excelでは半角英数および
半角カタカナは、使わないほうが賢明です。


不具合2. コンマをピリオドで入力
コンマなのかピリオドなのか見分けにくかったでしょうが、右下図のように入力ミスがあります。

以上を修正してから実行し、結果をお知らせください。  …以下の解説は時間があったらお読みください。…

A. について
黄色で網掛けされたコードは正確に入力されているので、問題ありません。

B. について
引数として変数「ドライブ」を指定しているので、そこに正しい値が入っていなければ 「引数の不正」ということになります。 変数「ドライブ」には 「管理表」シートのB列の値が代入される仕組みになっているので、半角英数の「c」が入ってしまいます。
ドライブを表す文字は、英数 (IMEが起動してない状態) の C とか D とか (小文字も可) を使います。
半角英数の「c」は、そのままで使うことはできません。

この機会にさらに理解を深めたければ、とりあえず、「管理表」シートのB列の値を正常化して、実行してみてください。すると、再び、同じエラーが表示されるはずです。
他にも不具合があることになりますので、変数「ドライブ」に関連するコードに入力ミス等の誤りがないか、注意深く検証すると、コンマとピリオドの入力ミスにたどり着くはずです。

参考ページ
・変数「ドライブ」の値を知る方法:
実行時エラー"5"(プロシージャーの呼び出し、または引数が不正)とは?
・見つけにくい入力ミスの例:
「リストボックスを動作確認する」でコンパイルエラーが発生するが?
・ピリオドをコンマとしてしまった例:
Openメソッドで実行時エラーが表示されてしまうが?
・余計なコロン( : )がある例:    
「パスが見つかりません」とエラー表示されるが?

 

Excel VBA Macro