dポイントプレゼントキャンペーン実施中!

全く理解できていない初心者です。
あるサイトで見つけたマクロです。

「検索結果のセルをすべて選択する」

Sub SelectTargets()
Dim Target As String
Dim FoundCell As Range, SearchArea As Range
Dim Addr As String
Dim FoundAddr() As String
Dim i As Long

Target = Application.InputBox("検索文字列入力", "検索", Type:=2)
If Target = "False" Then Exit Sub

Set SearchArea = ActiveSheet.UsedRange

* Set FoundCell = SearchArea.Find(what:=Target, LookIn:=xlValues, _
LookAt:=xlPart, MatchCase:=False, MatchByte:=False)

If FoundCell Is Nothing Then Exit Sub
Addr = FoundCell.Address

Do
ReDim Preserve FoundAddr(i) '配列の内容を維持したまま再宣言
FoundAddr(i) = FoundCell.Address '検索結果のアドレスを配列に格納
Set FoundCell = SearchArea.FindNext(After:=FoundCell)
i = i + 1
If FoundCell Is Nothing Then Exit Do
Loop Until FoundCell.Address = Addr

'配列に格納されたアドレスをカンマ区切りで結合し、セル範囲を一括選択
Range(Join(FoundAddr, ",")).Select '---(1)
End Sub

↑家のエクセル(2010)では完璧でできるのですが、会社のエクセル(2003)では、「実行時424 オブジェクトが必要です」とエラーメッセージが出ます。

コードの入力ミスがありました。
上から2行目  Dim foundcell As Range, sercharea( 正 seacharea)As Range

後は、入力ミスはなさそうなのですが、実行キーを押すと
「実行時424 オブジェクトが必要で」と出ます。
黄色のマーカーが出るのが、*印を置いた
↓に出ます。
Set FoundCell = SearchArea.Find(what:=Target, LookIn:=xlValues, _
LookAt:=xlPart, MatchCase:=False, MatchByte:=False)

後、気になるのがコードを入力して
「target」「searcharea」「foundcell」「foundaddr」「addr」などが頭文字が大文字になりません。
無理やり大文字にしてみたりしましたが…
「オブジェクトが必要です」に関係あるのかないのかも分かりませんが、なぜ、エラーが出てしまうのか?
入力ミスが原因なのか?
何が足りないのか?何か不要なコードがあるのか?
どの用意すればいいのか教えていただけませんか?

よろしくお願いします。

「「実行時424 オブジェクトが必要です」」の質問画像

A 回答 (1件)

>黄色のマーカーが出るのが、*印を置いた



その黄色い行にも「SearchArea」の誤記がありますね。または、間違いを直したつもりのDimの宣言の方が、まだ間違ってるのかもしれません。
あなたが手で書いた今回のご相談の情報提供文章の中で、どの部分が「今回ご相談を書いたときの更に誤記」で「どれが会社で失敗している実際のマクロの内容」なのか、判別できません。

しっかり見直して、正しいマクロを書けるように更によくチェックしましょう。


#参考
VBE画面でツールメニューのオプションの編集タブ、「変数の宣言を強制する」他の全てのチェックをチェックしてマクロの練習をするようにしてみましょう。少なくとも今回のような誤記等のミスは、イミフメイの実行エラーになる前に別の分かりやすいエラーで教えてくれます。
    • good
    • 0
この回答へのお礼

ありがとうございます。
やはり、完全なカードの入力ミスでした。

何度も見直して、確認したつもりなのですが…
ご指摘いただいたところを修整したら、できました(#^.^#)

アドバイスありがとうございます。
お恥ずかしい質問にご回答いただき感謝します。

お礼日時:2014/09/12 18:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!