Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10270 / 13644 ツリー ←次へ | 前へ→

【22771】WorksheetFunction.Find 草加Jacky 05/3/2(水) 20:25 質問[未読]
【22772】Re:WorksheetFunction.Find ichinose 05/3/2(水) 20:34 回答[未読]
【22790】Re:WorksheetFunction.Find 草加Jacky 05/3/3(木) 12:59 お礼[未読]
【22792】Re:WorksheetFunction.Find Jaka 05/3/3(木) 13:14 発言[未読]

【22771】WorksheetFunction.Find
質問  草加Jacky  - 05/3/2(水) 20:25 -

引用なし
パスワード
   下記のようなマクロを書くと、Substitute の方ではエラーが出ないのに Find では

実行時エラー'1004':
WorksheetFunction クラスの Find プロパティを取得できません。

というエラーが出てしまいます。どちらも普通のワークシート関数だと思うのですが、何がいけないんでしょう?


Sub testfind()
   temp1 = WorksheetFunction.Substitute("ABC", "B", "C") 'temp1は"ACC"
   temp2 = WorksheetFunction.Find("ABC", "B")   'temp2は2…にならない
End Sub

【22772】Re:WorksheetFunction.Find
回答  ichinose  - 05/3/2(水) 20:34 -

引用なし
パスワード
   ▼草加Jacky さん:
こんばんは。

>下記のようなマクロを書くと、Substitute の方ではエラーが出ないのに Find では
>
>実行時エラー'1004':
>WorksheetFunction クラスの Find プロパティを取得できません。
>
>というエラーが出てしまいます。どちらも普通のワークシート関数だと思うのですが、何がいけないんでしょう?
>
>
>Sub testfind()
>   temp1 = WorksheetFunction.Substitute("ABC", "B", "C") 'temp1は"ACC"
>   temp2 = WorksheetFunction.Find("ABC", "B")   'temp2は2…にならない
パラメータの順序が逆ですよ!!
   temp2 = Application.Find("B", "ABC")
こういうのは、見つけにくいんですよねえ!!
>End Sub

【22790】Re:WorksheetFunction.Find
お礼  草加Jacky  - 05/3/3(木) 12:59 -

引用なし
パスワード
   早速のお返事ありがとうございます。御礼が遅くなってしまい申し訳ございません。

▼ichinose さん:
>パラメータの順序が逆ですよ!!
>   temp2 = Application.Find("B", "ABC")

げ!!!ほんとだ・・・。
何回も確認したのに・・・。

あれ?でもおかしいな?被検索文字列に該当する文字(列)がなかったらどうなるんだろ?
・・・ということで、

temp3 = Application.Find("D", "ABC")

としてみると、案の定エラーが!!!
げ、使いにくい・・・。なければ False とかを返してほしいなぁ。
それにしても、

WorksheetFunction クラスの Find プロパティを取得できません。

というメッセージはあんまりだと思う。これではまるで Find がワークシート関数ではない、といってるみたいですよねぇ。

>こういうのは、見つけにくいんですよねえ!!

フォローありがとうございます。また何かありましたらよろしくお願い致します。

【22792】Re:WorksheetFunction.Find
発言  Jaka  - 05/3/3(木) 13:14 -

引用なし
パスワード
   >temp3 = Application.Find("D", "ABC")

>としてみると、案の定エラーが!!!
>げ、使いにくい・・・。なければ False とかを返してほしいなぁ。

使い方を知らないだけです。
Dim temp3 as variant
MsgBox IsError(temp3)
If IsError(temp3) Then....

10270 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free