fork download
  1. Option Explicit
  2.  
  3. Const Folder As String = "D:\goo\data9"
  4. Public Sub 測定結果設定()
  5. Dim fname As String
  6. Dim fcount As Long: fcount = 0
  7. Dim ms As Worksheet
  8. Dim mscol As Long '差分値距離列番号(統合)
  9. Dim mjcol As Long '実測値列番号(統合)
  10. Dim tscol As Long '差分値距離列番号(CSV)
  11. Dim tjcol As Long '実測値列番号(CSV)
  12. Dim msrow As Long '差分値距離行番号(統合)
  13. Dim mjrow As Long '実測値行番号(統合)
  14. Dim tsrow As Long '差分値距離行番号(CSV)
  15. Dim tjrow As Long '実測値行番号(CSV)
  16. Dim fno As Long 'CSVファイル番号
  17. Dim bno As Long 'CSVファイル内ブロック番号
  18.  
  19. Set ms = Worksheets("測定結果")
  20. '前回使用領域のクリア
  21. ms.Cells.ClearContents
  22. ms.Cells(1, "A").Value = "取得ファイル名"
  23. ms.Cells(3, "A").Value = "コメント"
  24. fname = Dir(Folder & "\" & "LS?.??_L0?.csv")
  25. Do While fname <> ""
  26. fcount = fcount + 1
  27. '実測値距離、差分値距離設定(横複数列に設定)
  28. Call set_data(ms, fcount, fname)
  29. fname = Dir
  30. Loop
  31. If fcount = 0 Then
  32. MsgBox ("該当ファイルなし")
  33. Exit Sub
  34. End If
  35. '差分値距離、実測値距離設定(縦1列に設定)
  36. mscol = fcount * 2 + 3
  37. mjcol = mscol + 1
  38. ms.Cells(3, mscol).Value = "差分値距離"
  39. ms.Cells(3, mjcol).Value = "実測値距離"
  40. For fno = 1 To fcount
  41. tscol = fno * 2 + 1
  42. tjcol = fno * 2
  43. For bno = 1 To 3
  44. tjrow = (bno - 1) * 8 + 4
  45. tsrow = tjrow + 4
  46. msrow = (fno - 1) * 12 + (bno - 1) * 4 + 4
  47. mjrow = msrow
  48. '差分値設定
  49. ms.Cells(msrow, mscol).Resize(4, 1).Value = ms.Cells(tsrow, tscol).Resize(4, 1).Value
  50. '実測値設定
  51. ms.Cells(mjrow, mjcol).Resize(4, 1).Value = ms.Cells(tjrow, tjcol).Resize(4, 1).Value
  52. Next
  53. Next
  54. MsgBox ("完了")
  55. End Sub
  56.  
  57. Private Sub set_data(ByRef ms As Worksheet, ByVal fcount As Long, ByVal fname As String)
  58. 'CSVファイルをオープン
  59. Dim csvpath As String 'CSVファイルパス
  60. Dim wb As Workbook 'CSVファイルブック
  61. Dim ws As Worksheet 'CSVファイルシート
  62. Dim mcol As Long '測定結果設定列番号
  63. csvpath = Folder & "\" & fname
  64. Workbooks.OpenText Filename:=csvpath, DataType:=xlDelimited, comma:=True, textqualifier:=xlTextQualifierNone
  65. Set wb = Workbooks.Item(Workbooks.count)
  66. Set ws = wb.Worksheets(1)
  67. 'コメント設定
  68. If fcount = 1 Then
  69. ms.Range("A4:A27").Value = ws.Range("B9:B32").Value
  70. End If
  71. mcol = fcount * 2
  72. 'ファイル名設定
  73. Dim bname As String
  74. bname = Left(fname, Len(fname) - 4)
  75. ms.Cells(1, mcol).Value = bname
  76. '実測値距離
  77. ms.Cells(3, mcol).Value = "実測値距離"
  78. ms.Range(ms.Cells(4, mcol), ms.Cells(27, mcol)).Value = ws.Range("D9:D32").Value
  79. '差分値距離
  80. ms.Cells(3, mcol + 1).Value = "差分値距離"
  81. ms.Range(ms.Cells(4, mcol + 1), ms.Cells(27, mcol + 1)).Value = ws.Range("E9:E32").Value
  82. 'CSVファイルクローズ
  83. wb.Close
  84. End Sub
  85.  
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty