

数日前マクロをはじめた初心者です。
"・・・Findプロパティを取得できません"というエラーの解決方法がわかりません。シートには以下の内容が記述されています。
-------------------------------------------------(以下シート)
A列 B列 C列
空白 田中 北海道札幌市中央区宮の森12345
・ 鈴木 北海道札幌市中央区宮の森45678
・ 佐藤 北海道札幌市北区あいの里78956
AA列 AB列
1 北海道札幌市中央区
2 北海道札幌市北区
3 北海道札幌市東区
-------------------------------------------------(以上シート)
B列(人名)のC列(住所)をAB列(地域)に対応したAA列(番号)で割り振りたいのです。
そこで以下のマクロを作りました。
-------------------------------------------------(以下マクロ)
Sub macro1()
Dim i As Integer, j As Integer
i = 1
j = 1
Do While Cells(i, "B").Value <> ""
If Application.WorksheetFunction.Find(Cells(j, "AB"), Cells(i, "C"), 1) = 1 Then
Cells(i, "A") = Cells(j, "AA").Value
i = i + 1
j = 1
Else
j = j + 1
End If
Loop
End Sub
-------------------------------------------------(以下マクロ)
A列
1
1
2
と入る予定でつくったのですが、最期の 2 が入らずエラーとなります。
どこが間違いかわかりません。
ご教授願います。
No.2ベストアンサー
- 回答日時:
Application.WorksheetFunction.findは見つからない場合はエラーを返すので、on error などを使って見つからない場合の処理が必要だと思います。
またはApplication.WorksheetFunction.findの代わりにinstrで処理すれば見つからなくてもエラーは起きないので、
>If Application.WorksheetFunction.find(Cells(j, "AB"), Cells(i, "C"), 1) = 1 Then
を
If InStr(Cells(i, "C"), Cells(j, "AB")) = 1 Then
に変更してはどうでしょうか?
ご指摘の InStr で出来ました。こんな関数あったんですね。ありがとうございます。
ところで修正前のコードは何故エラーが出るのでしょうか。
findが見つからなかった場合のコードは後で付記するつもりだったのですが、本件のコードは問題無いとおもっていたのですが・・・。
No.3
- 回答日時:
>ところで修正前のコードは何故エラーが出るのでしょうか。
>本件のコードは問題無いとおもっていたのですが
すっきりしないと何でしょうから。。
3番目の佐藤さんの場合。
(1)Find("北海道札幌市中央区", "北海道札幌市北区あいの里78956", 1)
(2)Find("北海道札幌市北区", "北海道札幌市北区あいの里78956", 1)
質問者は上記のように、(1)(2)の順に実行され、
(2)でヒットするからエラーは出ないはずと思われたのでしょうが、
先に実行される(1)ではヒットしないですよね。
ワークシート関数Findはヒットしないとエラーを返すので
その(1)を実行したところでエラーが出てしまうわけです。
因みに、田中、鈴木は、最初のAB1の値でヒットするのでエラーが出ない。
以上。
No.1
- 回答日時:
この記述ではループするたびFindの検索範囲が変更されているため、エラーが発生しているでは?通常であれば検索範囲は不変ですよね。
質問文しか見ずに回答しています。あしからず。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【Excel】住所に郵便番号を付記する方法 3 2022/05/07 17:15
- 郵便・宅配 北海道版の日刊スポーツとスポーツ報知を購入しましたが1週間以上たっても届きません。 1 2023/02/28 21:34
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/03/25 08:33
- 新幹線 北海道新幹線の速達列車の名前を予想してください。 私は、 速達型は、ぴりか号(上野、大宮、仙台、盛岡 4 2023/02/11 19:22
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- PHP ファイルの書き込みについて教えて下さい。 1 2023/03/20 12:01
- Visual Basic(VBA) マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」 4 2022/11/08 11:14
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
このQ&Aを見た人はこんなQ&Aも見ています
-
今年はじめたいことは?
今年はこれをはじめたい!ということを教えてください!
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
みんなの【マイ・ベスト積読2024】を教えてください。
積読、ついついしちゃいませんか?そこでみなさんの 「2024年に買ったベスト積読」を聞きたいです。
-
あなたなりのストレス発散方法を教えてください!
自分なりのストレス発散方法はありますか?
-
一番好きなみそ汁の具材は?
みんなで大好きなみそ汁の具材について語り合おうよっ!
-
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
findは動くがfindnextがマクロで動きません。記述は同じはずなのですが…
Visual Basic(VBA)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
-
4
EXCEL ページを指定してPDF出力するVBAを教えてください。
PDF
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
【VB.NET】 パワポ操作を非表示で
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
文字列内で括弧を使うには
-
On ErrorでエラーNoが0
-
マクロで"#N/A"のエラー行を削...
-
【VBA】ワークブックを開く時に...
-
String""から型'Double'への変...
-
VBA データ(特定値)のある最...
-
ASPでこんなエラーが出たんです...
-
Excel vbaについての質問
-
ゴールシーク関数のマクロが作...
-
VB.net 重複チェックがしたいです
-
VBAのリストボックスで、横スク...
-
Perlのエラーについてご教授く...
-
Oracle Case文でのエラー(デー...
-
VB6とVB.NETでNullの扱いが違う?
-
Filter関数を用いた結果、何も...
-
VBでSQL文のUPDATE構文を使った...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
String""から型'Double'への変...
-
マクロで"#N/A"のエラー行を削...
-
文字列内で括弧を使うには
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
LaTeXのエラーについて(コンパ...
-
Filter関数を用いた結果、何も...
-
ACCESSで値を代入できないとは?
-
Excel vbaについての質問
-
インポート時のエラー「データ...
-
ApplicationとWorksheetFunctio...
-
実行時エラー 438 の解決策をお...
-
VBでSQL文のUPDATE構文を使った...
-
pythonのopenpyxlについて
-
【Access】Excelインポート時に...
-
SQLでエラーです。
おすすめ情報