こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excelで当選したくじを検索したい

Windows10、Excel2016を使用しています。

自治会の祭りでくじ引きがあり、その管理をすることになりました。
Excelで当選くじを一覧表にし、引換券を持ってきた人を待たせないように、
添付図のような「当選者検索」画面を作ろうと思っています。

【仕様】
1.当選者一覧表は既に出来上がっている
2.[当選者検索]の街区に、引換券の街区を入力して[検索実行]をクリック
3.当選者の当該シート(5等~特等)を表示し、フォーカスを当てる

しかしExcelについては詳しくなく、皆様のお知恵を借りるしかありません。
どうかよろしくお願いいたします。

投稿日時 - 2016-08-02 11:53:32

QNo.9209906

すぐに回答ほしいです

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

検索実行ボタンのマクロに以下のコードを
画像のシートが画像の通り並んでいて当選者検索シートが左端だと考えています。

Sub ボタン1_Click()
Dim i As Integer
Dim c As Range
Dim firstAddress As String

For i = 2 To Sheets.Count
Worksheets(i).Activate
With Worksheets(i).Range(Cells(4, "C"), Cells(Rows.Count, "C").End(xlUp))
Set c = .Find(Worksheets(1).Cells(5, "B").Value, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
firstAddress = c.Address
Do
If c.Offset(0, 2).Value = Worksheets(1).Cells(5, "D").Value Then
c.Resize(1, 4).Select
MsgBox "該当", vbInformation
Exit Sub
End If
Set c = .FindNext(c)
If c Is Nothing Then
Exit Do
End If
If c.Address = firstAddress Then
Exit Do
End If
Loop
End If
End With
Next i
Worksheets(1).Activate
MsgBox "該当なし", vbInformation
End Sub

投稿日時 - 2016-08-02 14:25:04

お礼

当選者にフォーカスまで当ててくださいましてありがとうございます!
今年の夏まつりはこれでバッチリです。
ありがとうございました!

投稿日時 - 2016-08-02 15:12:42

ANo.4

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

こんにちは、No2です。
フォームのボタンにマクロを登録するとして、
Sub test()
  Dim i As Long
  Dim s As Variant
  Dim v As Variant
  For i = i To 6
    If i = 6 Then s = "特" Else s = i
    v = Evaluate("INDEX(" & s & "等!$F$1:$F$100," & _
      "MATCH(1,INDEX((" & s & "等!$C$1:$C$100=$B$5)*(" & _
      s & "等!$E$1:$E$100=$D$5),0),0))")
    If Not IsError(v) Then
      Worksheets(s & "等").Activate
      Range("F:F").Find(v, , , xlWhole).Select
      Exit For
    End If
  Next
End Sub
とかで。

投稿日時 - 2016-08-02 13:44:04

お礼

ありがとうございます。
これでバッチリです!

投稿日時 - 2016-08-02 14:57:11

ANo.2

こんにちは
>3.当選者の当該シート(5等~特等)を表示し、フォーカスを当てる
と、他の当選者も見えてしまうので、当選者検索シートに

当選者
特等 =IFERROR(INDEX(特等!$F$1:$F$100,MATCH(1,INDEX((特等!$C$1:$C$100=$B$5)*(特等!$E$1:$E$100=$D$5),0),0)),"")
1等=IFERROR(INDEX('1等'!$F$1:$F$100,MATCH(1,INDEX(('1等'!$C$1:$C$100=$B$5)*('1等'!$E$1:$E$100=$D$5),0),0)),"")
2等=IFERROR(INDEX('2等'!$F$1:$F$100,MATCH(1,INDEX(('2等'!$C$1:$C$100=$B$5)*('2等'!$E$1:$E$100=$D$5),0),0)),"")
3等=IFERROR(INDEX('3等'!$F$1:$F$100,MATCH(1,INDEX(('3等'!$C$1:$C$100=$B$5)*('3等'!$E$1:$E$100=$D$5),0),0)),"")
4等=IFERROR(INDEX('4等'!$F$1:$F$100,MATCH(1,INDEX(('4等'!$C$1:$C$100=$B$5)*('4等'!$E$1:$E$100=$D$5),0),0)),"")
5等=IFERROR(INDEX('5等'!$F$1:$F$100,MATCH(1,INDEX(('5等'!$C$1:$C$100=$B$5)*('5等'!$E$1:$E$100=$D$5),0),0)),"")
のように数式をセットしておくのはどうですか?

投稿日時 - 2016-08-02 12:28:04

補足

さっそくありがとうございます。
>他の当選者も見えてしまうので、当選者検索シートに
他の当選者は見えてしまって全然構いませんが・・・
出来れば当選者が載っている〇等のシートを表示させたいのです。

投稿日時 - 2016-08-02 12:41:44

ANo.1

おそらくマクロで作ることになりますので、できれば、全ての当選者一覧表を一つのシートにまとめ、フィルター機能を使ってハイフンで挟まれた2つの街区番号を探した方が、検索結果に安心感が有り、簡単なように思われますがいかがでしょうか。

投稿日時 - 2016-08-02 12:10:26

補足

さっそくありがとうございます。
出来れば現在のままで検索できれば思っています。
よろしくお願いします。

投稿日時 - 2016-08-02 12:46:05