advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 44 for VBA ファイル 一覧 階層 (0.013 sec.)
vba (14732), ファイル (15417), 一覧 (5018), 階層 (417)
[[20220224135544]]
#score: 10254
@digest: 97679ec2261a117dfd650383ddcc9af5
@id: 90550
@mdate: 2022-02-25T01:22:22Z
@size: 15037
@type: text/plain
#keywords: 測会 (69558), 力一 (67909), む. (51124), 別能 (38744), 20220223 (37491), タ元 (33183), ネタ (29720), ゼッ (25921), bookname (24899), 表¥ (23027), 元フ (22573), 計測 (20976), 01a (20803), 各cs (20624), ム| (19983), 度| (17883), 名一 (12692), 能力 (12364), 値| (11651), ッケ (7935), 理表 (7930), 最高 (6365), 速度 (5653), イム (5366), 覧") (5344), 順番 (5226), 高速 (4941), ら順 (4775), ファ (4686), 一覧 (4495), 表") (3838), ァイ (3628)
『他ブックを開き、値を並びかえたデータを取り込みたい』(マネージャー)
皆様のお力をお貸しください。 選手の能力を見える化しようとしています。 選手のデータを計測するPC(仕組み)が2つあり、それぞれ結果をCSVで出力できます 計測する仕組みが2つあるため、1つの計測会で2つのCSVファイルができます。 2つのCSVのデータを1つのブックに取り込み、まとめて点数化し独自の点数をつけたいと考えています。 各CSVには多くのパラメータが保存されており、まとめるブックに取り込む際に 各パラメータで順位を並び替えた結果を取り込みたいと考えていますが、ブックから各CSV上で並び替える マクロがわかりませんので質問させていただきました。 条件は以下のように考えております。 1)1つの計測会に参加する選手は最大10人 2)1日の計測会は最大20 3)管理表フォルダーがあり、その中に管理するBOOKを作り(BOOK名はPP)保存します。 1つ目のPCからCSVとして作成されるファイル名は01.csv〜20.csv 2つ目のPCからCSVとして作成されるファイル名は01a.csv〜20a.csv したっがて、1回目の計測会で出力されるファイルは 01.csv 01a.csv この2つとなり、計測会の回次が20回目となれば 20.csv 20a.csv のファイルが出力されます イメージとして 管理表フォルダーがあり、まとめるブック名=PPが入っています。 管理表フォルダーに 20220223のような日付(YYYYMMD)の付いたフォルダーがあり、 その配下に 01 (←01.csvから20.csvのファイルが入る) 02 (←01a.csvから20a.csvのファイルが入る) の2つのフォルダーがある構成です。 データは毎日作成されるために管理するBOOKで日付でフォルダーを指定して抽出するようにしたいと考えています。。 以下は01.csvの内容になります。 |[A] |[B] |[D] |[E] |[AH] |[AI] |[AJ] |[AK] [1] |計測会No |タイム |前半タイム|名前ゼッケン|平均速度 |Last20m |最高速度 |前回最高速度 [2] | 1| 1:00| 00:28| 6| 8.0| 7.5| 7.6| 7.5 [3] | 2| 1:01| 00:28| 5| 8.2| 7.6| 7.6| 7.4 [4] | 3| 1:02| 00:27| 1| 8.3| 7.7| 7.8| 7.5 [5] | 4| 1:03| 00:29| 2| 8.4| 7.9| 7.7| 7.5 [6] | 5| 1:04| 00:27| 3| 8.5| 7.8| 7.6| 7.6 [7] | 6| 1:05| 00:28| 4| 8.5| 7.8| 7.8| 7.5 [8] | 7| 1:06| 00:29| 7| 8.9| 7.9| 7.9| 7.8 [9] | 8| 1:07| 00:30| 8| 8.8| 7.9| 8.1| 7.6 [10]| 9| 1:08| 00:31| 9| 8.7| 7.9| 8.1| 7.5 [11]| 10| 1:08| 00:31| 10| 8.9| 7.9| 8.1| 7.7 このCSVは保存される際にはB列(タイム)を昇順にした状態で保存されています。 その時のタイム順にならんだ「名前ゼッケン」を管理するBOOK(PP)転記するところまではできています。 以降 D列 前半タイム 昇順 AH 平均速度 昇順 AI Last20m 昇順 AJ 最高速度 降順 AK 前回最高速度 降順 で並べれ替えをした際のゼッケンを転記したいと考えていますが、そこのマクロが書けずに悩んでいます。 A列はA1セルを除き順位ですが、A1セルには計測会区分の番号が入ります(例えば01など) ◎考え方としては 1)各CSVをまとめるブックPPに取り込んでから並び替える 2)各CSVを操作して並び替えたデータ「名前ゼッケン」だけをブックPPに取り込む、CSVは保存せずに閉じる この2通りは思いつくのですが、後者の方法ができないかと悩んでおります 以下は01a.csvの内容になります。 |[A] |[D] |[R] |[Z] |[AA] |[AB] |[AG] [1] |計測会No |名前ゼッケン|差 |X値 |z値 |ZZ値 |T値 |M値 [2] | 1| 6| -2| 1| 8.0| 8.3| 2 [3] | 2| 1| -2| 2| 8.1| 8.2| 3 [4] | 3| 5| -1| 3| 8.1| 8.6| 1 [5] | 4| 4| 0| 4| 8.2| 8.5| 4 [6] | 5| 3| 0| 5| 8.2| 8.5| 6 [7] | 6| 2| 0| 6| 8.2| 8.7| 5 [8] | 7| 7| 0| 7| 8.3| 9.5| 7 [9] | 8| 8| 2| 8| 8.3| 8.5| 10 [10]| 9| 10| 3| 9| 8.4| 8.3| 9 [11]| 10| 9| 4| 10| 8.5| 8.2| 8 このCSVは保存される際にはZ列(X値)を昇順にした状態で保存されています。 D列 01.csvのE列と同じ位置づけ R X値 昇順 Z z値 昇順 AA ZZ値 降順 AB T値 降順 AG M値 昇順 で並べれ替えをした際のゼッケンを転記したいと考えています。 A列は順位ですが、A1セルには計測会区分の番号が入ります(例えば01aなど) 管理するBOOKのPP シート名は 能力一覧 (抽出したデータを表示させるシート) ファイル一覧 (フォルダーに収まっているファイル名を書き出すシート) この2シートになります。 能力一覧 (抽出したデータを表示させるシート)への出力イメージは次の通りです |[A] |[B] |[C]|[D]|[E]|[F]|[G]|[H]|[I]|[J]|[K]|[L] [3] |フォルダID| 20220223 |1 |2 |3 |4 |5 |6 |7 |8 |9 |10 ←順位 [4] 計測データ [5] | 01|タイム |1 |2 |3 |4 |5 |6 |7 |8 |9 |10 [6] | 01|前半タイム|2 |1 |3 |4 |5 |6 |7 |8 |9 |10 [7] | 01|平均速度 |1 |2 |3 |4 |5 |6 |7 |8 |9 |10 [8] | 01|Last20 |1 |2 |3 |4 |5 |6 |7 |8 |9 |10 [9] | 01|最高速度 |1 |2 |3 |5 |4 |6 |7 |8 |9 |10 [10]| 01|前回最高 |2 |2 |3 |4 |5 |6 |7 |8 |9 |10 [11]| 01a|A_data |1 |4 |3 |2 |5 |6 |7 |8 |9 |10 [12]| 01a|B_data |2 |3 |5 |4 |1 |6 |7 |8 |9 |10 [13]| 01a|C_data |1 |2 |3 |4 |5 |10 |9 |8 |7 |6 [14]| 01a|D_data |3 |2 |4 |1 |5 |6 |7 |8 |9 |10 [15]| 01a|E_data |3 |2 |1 |4 |5 |6 |7 |8 |9 |10 [16]| 02|タイム | | | | | | | | | | [17]| 02|前半タイム| | | | | | | | | | [18]| 02|平均速度 | | | | | | | | | | [19]| 02|Last20 | | | | | | | | | | [20]| 02|最高速度 | | | | | | | | | | [21]| 02|前回最高 | | | | | | | | | | [22]| 02a|A_data | | | | | | | | | | [23]| 02a|B_data | | | | | | | | | | [24]| 02a|C_data | | | | | | | | | | [25]| 02a|D_data | | | | | | | | | | [26]| 02a|E_data | | | | | | | | | | A16行名以降は2回目の計測データが続けて入る予定です(20計測会まで) 能力一覧のB3セルにYYYYMMDDで日付指定を行います。 フォルダーの階層は ¥管理表¥20220223_管理表¥01 ここに01〜20の名前の付いたCSVが入ります。 ¥管理表¥20220223_管理表¥02 ここに01a〜20aの名前の付いたCSVが入ります。 PPのブックの能力一覧シートにマクロボタンをおき1クリックで展開できるマクロを目指しています。 ますは01フォルダーの分だけでもできでれば02が応用できると思います。 現在のマクロはここまでは書いています。 Option Explicit Sub ファイル一覧表作成() Application.ScreenUpdating = False Dim i As Long, bookname As String With Sheets("ファイル一覧表") .Columns(1).ClearContents bookname = Dir(ThisWorkbook.Path & "¥" & _ Sheets("能力一覧").Range("B3") & "_管理表¥01¥*") Do While bookname <> "" i = i + 1 .Cells(i, 1) = bookname bookname = Dir() Loop End With End Sub Sub ファイル一覧表作成2() Application.ScreenUpdating = False Dim i As Long, bookname As String With Sheets("ファイル一覧表") .Columns(1).ClearContents bookname = Dir(ThisWorkbook.Path & "¥" & _ Sheets("能力一覧").Range("B3") & "_管理表¥02¥*") Do While bookname <> "" i = i + 1 .Cells(i, 1) = bookname bookname = Dir() Loop End With End Sub Sub R別能力一覧() Application.ScreenUpdating = False Dim i As Long, r As Long Dim f As Worksheet Set f = Sheets("ファイル一覧表") With Sheets("能力一覧") .Range("A5").CurrentRegion.Offset(1, 0).ClearContents For i = 1 To f.Cells(Rows.Count, 1).End(xlUp).Row r = .Cells(Rows.Count, 1).End(xlUp).Row + 1 Workbooks.Open ThisWorkbook.Path & "¥" & _ .Range("B3") & "_管理表¥01¥" & f.Cells(i, 1) .Cells(r, 1) = Range("A1") 'ネタ元ファイルのA1セルをA6セルから順番に書き込む .Cells(r, 2) = Range("D1") 'ネタ元ファイルのG38セルをB6セルから順番に書き込む .Cells(r, 3) = Range("E2") 'ネタ元ファイルのC38セルをC6セルから順番に書き込む .Cells(r, 4) = Range("E3") 'ネタ元ファイルのE38セルをD6セルから順番に書き込む .Cells(r, 5) = Range("E4") 'ネタ元ファイルのA1セルをA6セルから順番に書き込む .Cells(r, 6) = Range("E5") 'ネタ元ファイルのG38セルをB6セルから順番に書き込む .Cells(r, 7) = Range("E6") 'ネタ元ファイルのC38セルをC6セルから順番に書き込む .Cells(r, 8) = Range("E7") 'ネタ元ファイルのE38セルをD6セルから順番に書き込む .Cells(r, 9) = Range("E8") 'ネタ元ファイルのA1セルをA6セルから順番に書き込む .Cells(r, 10) = Range("E9") 'ネタ元ファイルのG38セルをB6セルから順番に書き込む .Cells(r, 11) = Range("E10") 'ネタ元ファイルのC38セルをC6セルから順番に書き込む ActiveWorkbook.Close savechanges:=False Next End With End Sub Sub R別能力一覧2() Application.ScreenUpdating = False Dim i As Long, r As Long Dim f As Worksheet Set f = Sheets("ファイル一覧表") With Sheets("能力一覧") ' .Range("A6").CurrentRegion.Offset(1, 0).ClearContents For i = 1 To f.Cells(Rows.Count, 1).End(xlUp).Row r = .Cells(Rows.Count, 1).End(xlUp).Row + 1 Workbooks.Open ThisWorkbook.Path & "¥" & _ .Range("B3") & "_管理表¥02¥" & f.Cells(i, 1) .Cells(r, 1) = Range("A1") 'ネタ元ファイルのA1セルをA6セルから順番に書き込む .Cells(r, 2) = Range("Z1") 'ネタ元ファイルのG38セルをB6セルから順番に書き込む .Cells(r, 3) = Range("D2") 'ネタ元ファイルのC38セルをC6セルから順番に書き込む .Cells(r, 4) = Range("D3") 'ネタ元ファイルのE38セルをD6セルから順番に書き込む .Cells(r, 5) = Range("D4") 'ネタ元ファイルのA1セルをA6セルから順番に書き込む .Cells(r, 6) = Range("D5") 'ネタ元ファイルのG38セルをB6セルから順番に書き込む .Cells(r, 7) = Range("D6") 'ネタ元ファイルのC38セルをC6セルから順番に書き込む .Cells(r, 8) = Range("D7") 'ネタ元ファイルのE38セルをD6セルから順番に書き込む .Cells(r, 9) = Range("D8") 'ネタ元ファイルのA1セルをA6セルから順番に書き込む .Cells(r, 10) = Range("D9") 'ネタ元ファイルのG38セルをB6セルから順番に書き込む .Cells(r, 11) = Range("D10") 'ネタ元ファイルのC38セルをC6セルから順番に書き込む ActiveWorkbook.Close savechanges:=False Next End With End Sub Sub TOTAL() Call ファイル一覧表作成 Call R別能力一覧 Call ファイル一覧表作成2 Call R別能力一覧2 MsgBox "完了しました" End Sub 現在は、 01のフォルダーに01.csv 02のフォルダーに01a.csvを保存して上記マクロを実行するとになるところまで確認ができております |[A] |[B] |[C]|[D]|[E]|[F]|[G]|[H]|[I]|[J]|[K]|[L] [3] |フォルダID| 20220223 |1 |2 |3 |4 |5 |6 |7 |8 |9 |10 ←順位 [4] 計測データ [5] | 01|タイム |6 |5 |1 |2 |3 |4 |7 |8 |9 |10 [6] | 01a|x値 |6 |1 |5 |4 |3 |2 |7 |8 |10 | 9 アドバイスいただけたら嬉しいです。 よろしくお願いいたします。 < 使用 Excel:Excel2016、使用 OS:Windows10 > ---- 質問のポイントがつかめませんので、外しているかもしれませんが、ご参考。 Sub R別能力一覧() Application.ScreenUpdating = False Dim i As Long, r As Long Dim f As Worksheet Set f = Sheets("ファイル一覧表") With Sheets("能力一覧") .Range("A5").CurrentRegion.Offset(1, 0).ClearContents For i = 1 To f.Cells(Rows.Count, 1).End(xlUp).Row r = .Cells(Rows.Count, 1).End(xlUp).Row + 1 Workbooks.Open ThisWorkbook.Path & "¥" & _ .Range("B3") & "_管理表¥01¥" & f.Cells(i, 1) ' ここから c = Array("B", "D", "AH", "AI", "AJ", "AK") For j = 0 To UBound(c) Range("A1:AK10").Sort Key1:=Range(c(j) & "1"), Order1:=xlAscending, Header:=xlYes .Cells(r + j, 1) = Range("A1") .Cells(r + j, 2) = Range(c(j) & "1") .Cells(r + j, 3) = Range("E2") .Cells(r + j, 4) = Range("E3") .Cells(r + j, 5) = Range("E4") .Cells(r + j, 6) = Range("E5") .Cells(r + j, 7) = Range("E6") .Cells(r + j, 8) = Range("E7") .Cells(r + j, 9) = Range("E8") .Cells(r + j, 10) = Range("E9") .Cells(r + j, 11) = Range("E10") .Cells(r + j, 12) = Range("E11") Next ' ここまで変更 ActiveWorkbook.Close savechanges:=False Next End With End Sub (わからん) 2022/02/24(木) 16:52 ---- わからん様 ありがとうございます。 実行すると、「コンパイル エラー 変数が定義されていません」 デバッグ画面で C= のところが表示される結果となりました。 (マネージャー) 2022/02/25(金) 08:58 ---- >実行すると、「コンパイル エラー 変数が定義されていません」 変数を定義してください。 https://www.google.com/search?q=VBA+%E5%A4%89%E6%95%B0+%E5%AE%9A%E7%BE%A9 (わからん) 2022/02/25(金) 09:12 ---- わからん様 ありがとうございます。 Dim c Dim j As Long を追記でよいと思ったのですが 実行するとCSVファイルを探せなくなり デバッグ画面で Workbooks.Open ThisWorkbook.Path & "¥" & _ .Range("B3") & "_管理表¥01¥" & f.Cells(i, 1) のところが黄色くなってしまいます。 Dim j As Longを消すとファイルにはたどり着いている感じでした。 jの定義が違うのでしょうか? (マネージャー) 2022/02/25(金) 10:11 ---- >Dim c >Dim j As Long 変数の定義はそれであっています。 >実行するとCSVファイルを探せなくなり 変数を定義したことが影響するとは思えません。 >のところが黄色くなってしまいます。 そのときの「i」と「f.Cells(i, 1) 」の値はどうなっていますか? (わからん) 2022/02/25(金) 10:22 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/202202/20220224135544.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97049 documents and 608241 words.

訪問者:カウンタValid HTML 4.01 Transitional