EXCEL vba でツールを作っていたら、「byRef引数の型が一致しません。」というエラーが出た。しかし、自分のコードを何回、確認しても型の不一致は見当たらない(不幸にも型の不一致がある場合には型を合わせれば良いだけだ)。そこで、ググってみた。型をなんでもOKのvariantにするといいらしい。やってみたら、文句は言わなくなった。果たして、それでいいのか?納得がいかない。そこで、再び、ググってみた。これらのページに辿り着き、回避できた。
http://blog.subnetwork.jp/?p=1298
http://tsuchida0815.blogspot.com/2008/03/excelvba.html
結論は、マイクロソフトのバグのようだ。
そして、上記のページで示されていた解決方法に従い、Dim 変数1,変数2 As Stringと1行にまとめていた宣言をDim 変数1 As Stringと Dim 変数2 As Stringの2行にしてみた。文句が出なくなった。動いた。
ちなみに、マイクロソフトの説明は、以下で、つまりは、呼び出し元と呼び出し先で型宣言が異なるというものしかなく、そうでない場合に対しては、説明が珍紛漢紛(チンプンカンプン)だ。なんのこっちゃ。https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/byref-argument-type-mismatch
ここで、一息のコーナー。姫女苑(ヒメジョオン)は、キク科の雑草だ。似たものにハルジオンというのがあるそうだ。ググって見たら、とてもよく似ている。それは、区別できそうでもあり、そうできそうにもない。
ロバート・ゴダードの「惜別の賦」(Beyond Recall,1997)を読んだ。他人を簡単に信用すると騙されてエラい目に遭うことになる。
0 件のコメント:
コメントを投稿