• ベストアンサー

Excel VBA 1行にあるすべての項目の検索

いつもお世話になっております。 Excel97 VBA に関しての質問です。 Excelシート内のある1行に存在する項目から特定の項目を検索する方法ってありませんか? <例>   A   B   C   D   E   F      --------------------------- 1|会社  社員  番号  住所  番号  備考  というようなExcelになったってたとして、 Range("1").Search("住所") みたいな、一行目にある"住所"って項目があるかないかを判断できる方法ってないですかね? ※上記プログラムは適当ですw どなたかご教授願います><

質問者が選んだベストアンサー

  • ベストアンサー
  • aleister
  • ベストアンサー率31% (11/35)
回答No.1

下記URLではどうでしょうか?

参考URL:
http://excelvba.pc-users.net/fol7/7_1.html
liberty01
質問者

お礼

回答が遅くなってしまいましたが、aleisterさんすぐの回答ありがとうございます^^ ただ、URLの具体例がわかりづらく、回答番号No2のhana-hana3さんの具体例とaleisterさんのURLの内容から作成することができました!♪ありがとうございます。 点数に関しては早いaleisterさんに20点をつけたいと思います^^v

その他の回答 (2)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

>一行目にある"住所"って項目があるかないかを判断 If Application.CountIf(Worksheets("Sheet1").Rows(1), "住所") Then   MsgBox "有る" Else   MsgBox "無い" End If

liberty01
質問者

お礼

回答ありがとうございます>< countIF()で探す方法もありましたね!色々あるもんですねorz まだまだ勉強不足ですTT 点数に関して最初のお二人につけてしまって、watabe007さんには点数がつけれないのですが、ありがとうございまし^^わかりやすかったです。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

>一行目にある"住所"って項目があるかないかを判断できる方法ってないですかね? どのような検索をしたいのでしょうか? いろんな方法が考えられますが? 適当な範囲(任意に指定可能)から、任意の文字(値)を検索する事は可能です。 横に検索するなら、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

liberty01
質問者

お礼

回答が遅くなってしまいましたが、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

関連するQ&A