比較ボタン押下後、画像1の黄色枠のところに読み込んだデータ(緑枠)と他ブック(②の部分)の比較した結果を表示させたい。
読み込んだデータに近い値を上位7位でランク付けをしたいです。
実現したいことは以下になります。
1':「自動比較ツール.xlsm」の手順②は、絶対パスで実行させたい。
2':比較している間は、ファイルをオープンさせない。
3':手順②の「比較一覧表.xls」は複数シートがあり、その中から上位7位を表示させたい。
4':ランク付けは点数で評価させたい。
例えば「自動比較ツール.xlsm」の"A Sample"が"4.563"だとする。
「比較一覧表.xls」の各シートから"A Sample"の一番近い値を選ぶが、一番近かった値を点数1点とし、次に近い値を2点とし順に評価していきたい。
この評価を他データ(B Sample~G Sample)に対しても行い、"G Sample"まで比較が完了したら、合計で一番点数が低かったのを上位7位に表示させたい。
実際の画像が以下になります。
読み込んだデータ部分(緑枠)と②の格納先にある比較一覧表のエクセルファイルを比較し、データ部分に近い値を黄色枠に上位7位まで表示させたい。
画像の関係上一つのシートの纏めした。
実際には、シート2は、"2_比較一覧"、シート3は、"3_比較一覧"に記載しています。
この比較一覧表のファイルから読み込んだデータに近い値を探し、上位7位にランク付けしたいです。
コードが以下になります。
VBA
1Private Sub Select_Read_FilesButton_Click() 2 Dim FType As String 'ファイルの種類 3 Dim Prompt As String 'ダイアログのタイトル 4 Dim Target As String '任意読み込むパス 5 Dim FPath As Variant 'ファイル参照パス 6 Dim Pos As Long '参照先のセル 7 Dim WS As Worksheet '対象のシート名 8 9 Set WS = Worksheets("データ比較") 10 11 '選択できるファイルの種類をxlsに限定 12 FType = "Excelブック,*.xls" 13 14 'ダイアログのタイトルを指定 15 Prompt = "対象データファイルを選択して下さい" 16 17 'ファイル参照ダイアログの表示 18 FPath = Application.GetOpenFilename(FType, , Prompt) 19 20 'ダイアログでキャンセルボタンが押された場合は処理を終了 21 If FPath = False Then 22 End 23 End If 24 25 'G5セルにファイル名をセット 26 WS.Cells(5, 7).Value = FPath 27 28 Pos = InStrRev(Cells(5, 7).Value, "\") 29 30 ' "'"はファイル名からシート名まで括る 31 Target = "'" & Left(Cells(5, 7).Value, Pos) & "[" & Mid(Cells(5, 7).Value, Pos + 1) & "]" 32 33 '外部参照式にて読み込む際ファイルをオープンさせない 34 Range("E8") = ExecuteExcel4Macro(Target & "読み込みデータ'!R1C2") 'Sample No.表示 35 36 Range("E9") = ExecuteExcel4Macro(Target & "読み込みデータ'!R1C4") 'Test No.表示 37 38 WS.Range("C10").Formula = "=" & Target & "読み込みデータ'!D4" 'A Sample表示 39 WS.Range("C10").Value = WS.Range("C10").Value 40 41 WS.Range("E10").Formula = "=" & Target & "読み込みデータ'!D5" 'B Sample表示 42 WS.Range("E10").Value = WS.Range("E10").Value 43 44 WS.Range("G10").Formula = "=" & Target & "読み込みデータ'!D6" 'C Sample表示 45 WS.Range("G10").Value = WS.Range("G10").Value 46 47 WS.Range("C11").Formula = "=" & Target & "読み込みデータ'!D8" 'D Sample表示 48 WS.Range("C11").Value = WS.Range("C11").Value 49 50 WS.Range("E11").Formula = "=" & Target & "読み込みデータ'!D10" 'E Sample表示 51 WS.Range("E11").Value = WS.Range("E11").Value 52 53 WS.Range("G11").Formula = "=" & Target & "読み込みデータ'!D13" 'F Sample表示 54 WS.Range("G11").Value = WS.Range("G11").Value 55 56 WS.Range("I11").Formula = "=" & Target & "読み込みデータ'!D14" 'G Sample表示 57 WS.Range("I11").Value = WS.Range("I11").Value 58 59End Sub 60 61Private Sub HikakuButton_Click() 62 'この比較ボタンにコーディングしたいがどうしたらいいか分からないです。 63End Sub
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/26 15:22
2020/08/26 23:09