解決済みの質問
いつもお世話になっております。
Excel97 VBA に関しての質問です。
Excelシート内のある1行に存在する項目から特定の項目を検索する方法ってありませんか?
<例>
A B C D E F
---------------------------
1|会社 社員 番号 住所 番号 備考
というようなExcelになったってたとして、
Range("1").Search("住所")
みたいな、一行目にある"住所"って項目があるかないかを判断できる方法ってないですかね?
※上記プログラムは適当ですw
どなたかご教授願います><
投稿日時 - 2009-11-20 09:34:50
お礼
回答が遅くなってしまいましたが、aleisterさんすぐの回答ありがとうございます^^
ただ、URLの具体例がわかりづらく、回答番号No2のhana-hana3さんの具体例とaleisterさんのURLの内容から作成することができました!♪ありがとうございます。
点数に関しては早いaleisterさんに20点をつけたいと思います^^v
投稿日時 - 2009-11-26 11:12:16
0人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(2件中 1~2件目)
>一行目にある"住所"って項目があるかないかを判断
If Application.CountIf(Worksheets("Sheet1").Rows(1), "住所") Then
MsgBox "有る"
Else
MsgBox "無い"
End If
投稿日時 - 2009-11-20 15:39:56
お礼
回答ありがとうございます><
countIF()で探す方法もありましたね!色々あるもんですねorz
まだまだ勉強不足ですTT
点数に関して最初のお二人につけてしまって、watabe007さんには点数がつけれないのですが、ありがとうございまし^^わかりやすかったです。
投稿日時 - 2009-11-26 11:32:26
>一行目にある"住所"って項目があるかないかを判断できる方法ってないですかね?
どのような検索をしたいのでしょうか?
いろんな方法が考えられますが?
適当な範囲(任意に指定可能)から、任意の文字(値)を検索する事は可能です。
横に検索するなら、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
投稿日時 - 2009-11-20 10:28:20
お礼
回答が遅くなってしまいましたが、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:15
OKWaveのオススメ
おすすめリンク