![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
VBA(ExecuteExcel4Macro)を用いた検索ツール
はじめまして。
当方Excel2007、winXPでの環境下でVBAを用いた検索ツールを作成しています。
検索対象のxlsファイルには1行目に郵便番号、氏名、住所の項目タイトル、2行目以降にデータが入力されています。
【現在の仕様】
検索対象のxlsファイルを選択→検索したい氏名(3つまで)を入力すると氏名列を順に検索し、該当した氏名のみをシートへ出力
【作りたい仕様】
検索対象のxlsファイルを選択→検索したい氏名(3つまで)を入力すると氏名列を順に検索し、該当した氏名の入力された行をシートへ出力
現在のソースは下記になりますが、どのように書き変えればいいのかが分からず困っています。
教えていただけたらと思います。よろしくお願いいたします。
-------------------------
(略)
''対象ブックを選択します
OpenFileName = Application.GetOpenFilename("Microsoft Excel ブック,*.xls")
If OpenFileName = "False" Then Exit Sub
OpenFileName = Replace(OpenFileName, Dir(OpenFileName), "[" & Dir(OpenFileName) & "]")
SheetName = InputBox("読み込むワークシート名を入力してください。")
If SheetName = "" Then Exit Sub
Target = "'" & OpenFileName & SheetName & "'!"
On Error Resume Next
buf = ExecuteExcel4Macro(Target & "R1C1")
If Err <> 0 Then
MsgBox "ワークシート [ " & SheetName & " ] を読めませんでした。", vbExclamation
Exit Sub
End If
On Error GoTo 0
key1 = InputBox("検索したい氏名1を入力してください。")
If key1 = "" Then
Exit Sub
End If
key2 = InputBox("検索したい氏名2を入力してください。")
If key2 = "" Then
Else
key3 = InputBox("検索したい氏名3を入力してください。")
End If
For i = 1 To 256
If ExecuteExcel4Macro(Target & "R1C" & i) = "名前" Then
TargetCol = i
Exit For
End If
Next i
If TargetCol = 0 Then
MsgBox "[ 名前 ]フィールドが見つかりません。", vbExclamation
Exit Sub
End If
Dim clm As Integer
For i = 2 To 10000
buf = ExecuteExcel4Macro(Target & "R" & i & "C" & Target
If buf = "0" Then Exit For
If buf = key1 Then
Sheet3.Cells(w, 3) = buf
w = w + 1
ReDim Preserve GetNames(i - 1)
GetNames(i - 1) = buf
ElseIf buf = key2 Then
Sheet3.Cells(w, 3) = buf
w = w + 1
ReDim Preserve GetNames(i - 1)
GetNames(i - 1) = buf
(略)
-----------------
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
質問の文言、及び提示のコードにはいくつか問題点がありますが、
ま、それは置いといて。。。
●郵便番号、氏名、住所、、、と並んでいたら
----------------------------
If buf = key1 Then
Sheet3.Cells(w, 2) = ExecuteExcel4Macro(Target & "R" & i & "C" & TargetCol - 1)
Sheet3.Cells(w, 3) = buf
Sheet3.Cells(w, 4) = ExecuteExcel4Macro(Target & "R" & i & "C" & TargetCol + 1)
----------------------------
以上です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスの番号を使っ...
-
エクセルVBA テキストボックス...
-
TextBoxから数字が文字...
-
VBAのユーザーフォーム上で名簿...
-
<input>のstep属性に違反する入...
-
Excel-VBAでInputBox+Pulldown...
-
数字以外の入力をエラーにする...
-
教えて!全角文字「μ」の半角
-
ExcelVBAのユーザーフォームで...
-
サニタイジングについて
-
TextBoxに特定の文字のみ入力を...
-
アクセスのマクロ
-
textarea に TAB をいれたい
-
検索候補に見られたくないキー...
-
VBAの質問になります メッセー...
-
VBAで質問があります
-
EXCEL VBA で指定した範囲に入...
-
オンライン数式文書作成サイトm...
-
至急です!Excelがわかりません
-
Windowsのアプリ開発ってなんの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスの番号を使っ...
-
エクセルVBA テキストボックス...
-
初歩的な事だと思います。 Sub...
-
Excel-VBAでInputBox+Pulldown...
-
数字以外の入力をエラーにする...
-
EXCEL VBA で指定した範囲に入...
-
VBAでInputBoxの再入力をさせる...
-
TextBoxから数字が文字...
-
DataGridView 列ごとの入力制限
-
DataGridViewの桁数制限に関して
-
エディットボックスの入力制限...
-
c#でTextBoxの入力制限
-
「イ分」・・・フンという文字...
-
excel vba でユーザーフォーム...
-
教えて!全角文字「μ」の半角
-
アクセスのマクロ
-
入力フォームの値をQRコードで...
-
VBA R1C1形式で変数の入力について
-
ExcelVBAのユーザーフォームで...
-
TEXTAREA に入力時の位置
おすすめ情報