철근 CAD 출력 데이터를 Excel 데이터베이스로 변환

18410 단어 ExcelExcelVBA
CAD 시스템에서 출력되는 Excel 파일을 데이터베이스로 변환하는 매크로를 만들었습니다.

출력 레이아웃은 가시성 중시



깨끗하게 출력해 줍니다만, 데이터를 재이용하려면, 수고가 걸립니다.



데이터베이스는 데이터 재사용에 중점을 둡니다.



이 데이터를 재사용하기 쉽도록 아래 그림과 같이 변환하는 매크로를 만들었습니다.



VBA 샘플 프로그램



변환 처리는, 이하와 같이 하고 있습니다.

sample.vb
Private Sub s_発注データ変換()
  Dim wBKName  As String
  Dim w基準Row As Integer
  Dim w基準Col As Integer
  Dim wRow     As Integer
  Dim wCol     As Integer
  Dim wPage    As Integer
  Dim wNo      As Integer
  Dim w      As Integer
  Dim w工事名  As String
  Dim wRange   As String
  Dim wTest    As String

  Workbooks(gBookName).Worksheets("発注データ").Range("B6:M1005").ClearContents

  wBKName = fnPickFile(sFileName)

  Application.ScreenUpdating = False
  Workbooks.Open FileName:=sFileName

  With Workbooks(wBKName).Worksheets(1)
    w = 6
    wPage = 1

    Do

      w基準Row = 1 + (wPage - 1) * 29

      wRow = w基準Row + 4
      wCol = 4
      w工事名 = .Cells(wRow, wCol).Value
      If w工事名 = "" Or wPage > 100 Then Exit Do

      If wPage = 1 Then
        Workbooks(gBookName).Worksheets("発注データ").Cells(3, 3).Value = w工事名
      End If

      For wNo = 1 To 10
        wRow = w基準Row + 8 + (wNo - 1) * 2 + 1
        wCol = 3
        wRange = .Cells(wRow, wCol).Address(False, False)

        '発注データシートに転記
        Workbooks(gBookName).Worksheets("発注データ").Cells(w, 2).Value = .Cells(wRow, wCol).Value            '符号
        Workbooks(gBookName).Worksheets("発注データ").Cells(w, 3).Value = .Cells(wRow + 1, wCol).Value        '厚さ
        Workbooks(gBookName).Worksheets("発注データ").Cells(w, 4).Value = .Cells(wRow, wCol + 3).Value        'キリ径
        Workbooks(gBookName).Worksheets("発注データ").Cells(w, 5).Value = .Cells(wRow, wCol + 4).Value        '枚数
        Workbooks(gBookName).Worksheets("発注データ").Cells(w, 6).Value = .Cells(wRow + 1, wCol + 4).Value    '寸法
        Workbooks(gBookName).Worksheets("発注データ").Cells(w, 7).Value = .Cells(wRow, wCol + 8).Value        '重量
        Workbooks(gBookName).Worksheets("発注データ").Cells(w, 8).Value = .Cells(wRow + 1, wCol + 8).Value    '重量
        Workbooks(gBookName).Worksheets("発注データ").Cells(w, 9).Value = .Cells(wRow, wCol + 11).Value       '単重
        Workbooks(gBookName).Worksheets("発注データ").Cells(w, 10).Value = .Cells(wRow + 1, wCol + 11).Value  '単重
        Workbooks(gBookName).Worksheets("発注データ").Cells(w, 11).Value = .Cells(wRow, wCol + 14).Value      'ロス
        Workbooks(gBookName).Worksheets("発注データ").Cells(w, 12).Value = .Cells(wRow, wCol + 17).Value      '切断
        Workbooks(gBookName).Worksheets("発注データ").Cells(w, 13).Value = .Cells(wRow + 1, wCol + 15).Value  '備考

        w = w + 1
      Next wNo

      wPage = wPage + 1
    Loop
  End With


  Workbooks(wBKName).Close savechanges:=False
  Application.ScreenUpdating = True

  '発注データ表を表示
  Workbooks(gBookName).Worksheets("発注データ").Activate
  Workbooks(gBookName).Worksheets("発注データ").Range("A1").Select
End Sub


Excel 매크로 메뉴 샘플



위의 작업은 Excel 매크로 메뉴를 사용합니다.



아래와 같이 메뉴명과 매크로명을 등록하면 메뉴에 표시됩니다.


Excel 캘린더를 집계하는 매크로를 메뉴화한 샘플입니다.
주간 일정 관리

좋은 웹페이지 즐겨찾기