- ベストアンサー
Excel VBA 1行にあるすべての項目の検索
いつもお世話になっております。 Excel97 VBA に関しての質問です。 Excelシート内のある1行に存在する項目から特定の項目を検索する方法ってありませんか? <例> A B C D E F --------------------------- 1|会社 社員 番号 住所 番号 備考 というようなExcelになったってたとして、 Range("1").Search("住所") みたいな、一行目にある"住所"って項目があるかないかを判断できる方法ってないですかね? ※上記プログラムは適当ですw どなたかご教授願います><
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
下記URLではどうでしょうか?
その他の回答 (2)
- watabe007
- ベストアンサー率62% (476/760)
>一行目にある"住所"って項目があるかないかを判断 If Application.CountIf(Worksheets("Sheet1").Rows(1), "住所") Then MsgBox "有る" Else MsgBox "無い" End If
お礼
回答ありがとうございます>< countIF()で探す方法もありましたね!色々あるもんですねorz まだまだ勉強不足ですTT 点数に関して最初のお二人につけてしまって、watabe007さんには点数がつけれないのですが、ありがとうございまし^^わかりやすかったです。
- hana-hana3
- ベストアンサー率31% (4940/15541)
>一行目にある"住所"って項目があるかないかを判断できる方法ってないですかね? どのような検索をしたいのでしょうか? いろんな方法が考えられますが? 適当な範囲(任意に指定可能)から、任意の文字(値)を検索する事は可能です。 横に検索するなら、HLOOKUPという関数を使う事も可能です。 単純にループを使って検索する事も出来ます。 http://home.att.ne.jp/zeta/gen/excel/c04p42.htm Sub test2() Dim tmp Set tmp = Range("1:1").Find("住所", LookAt:=xlWhole) If Not tmp Is Nothing Then MsgBox "Hit !" Else MsgBox "Non-" End If Set tmp = Nothing End Sub
お礼
回答が遅くなってしまいましたが、hana-hana3さんすぐの回答ありがとうございます^^ 回答番号No1のaleisterさんのURLの内容とhana-hana3の具体例から作成することができました! 結局何がしたかったかというと、ExcelシートにあるデータをSQLで持ってくる前に、SQLで使用している項目がちゃんとシート内に存在しているかを事前にチェックしたかったのです。 ~実際に作成したやつはこんな感じです~ dim a(6) as string a(0) = "会社" a(1) = "社員" a(2) = "番号" a(3) = "住所" a(4) = "番号" a(5) = "備考" dim tmp For i=0 to 5 Set tmp = Range("A:Z").Find(a(i),LookAt:=xlWhole, SearchOrder:=xlByRows) if (Not(tmp is nothing)) then GoTo Error Next ありがとうございました!点数に関しては回答が早いaleisterさんに20点、次に早いhana-hana3さんに10点としたいと思います。正直お二人に20点あげたいのですがw
お礼
回答が遅くなってしまいましたが、aleisterさんすぐの回答ありがとうございます^^ ただ、URLの具体例がわかりづらく、回答番号No2のhana-hana3さんの具体例とaleisterさんのURLの内容から作成することができました!♪ありがとうございます。 点数に関しては早いaleisterさんに20点をつけたいと思います^^v