アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっております。

Excel97 VBA に関しての質問です。

Excelシート内のある1行に存在する項目から特定の項目を検索する方法ってありませんか?

<例>
  A   B   C   D   E   F   
  ---------------------------
1|会社  社員  番号  住所  番号  備考 


というようなExcelになったってたとして、
Range("1").Search("住所")
みたいな、一行目にある"住所"って項目があるかないかを判断できる方法ってないですかね?
※上記プログラムは適当ですw

どなたかご教授願います><

A 回答 (3件)

>一行目にある"住所"って項目があるかないかを判断


If Application.CountIf(Worksheets("Sheet1").Rows(1), "住所") Then
  MsgBox "有る"
Else
  MsgBox "無い"
End If
    • good
    • 0
この回答へのお礼

回答ありがとうございます><

countIF()で探す方法もありましたね!色々あるもんですねorz
まだまだ勉強不足ですTT

点数に関して最初のお二人につけてしまって、watabe007さんには点数がつけれないのですが、ありがとうございまし^^わかりやすかったです。

お礼日時:2009/11/26 11:32

>一行目にある"住所"って項目があるかないかを判断できる方法ってないですかね?



どのような検索をしたいのでしょうか?
いろんな方法が考えられますが?

適当な範囲(任意に指定可能)から、任意の文字(値)を検索する事は可能です。
横に検索するなら、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
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/11/26 11:28

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



参考URL:http://excelvba.pc-users.net/fol7/7_1.html
    • good
    • 0
この回答へのお礼

回答が遅くなってしまいましたが、aleisterさんすぐの回答ありがとうございます^^

ただ、URLの具体例がわかりづらく、回答番号No2のhana-hana3さんの具体例とaleisterさんのURLの内容から作成することができました!♪ありがとうございます。

点数に関しては早いaleisterさんに20点をつけたいと思います^^v

お礼日時:2009/11/26 11:12

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