PB 테이블 구조 Excel 내보내기
ctrl+shift+X 스크립트 편집기 열기
'******************************************************************************
'* File: pdm2excel.txt
'* Title: pdm export to excel
'* Purpose: To export the tables and columns to Excel
'* Model: Physical Data Model
'* Objects: Table, Column, View
'* Author: By
'* Created: 2014-11-28
'* Version: 1.0
'******************************************************************************
Option Explicit
Dim rowsNum,fontName,fontSize,tableCount,isFomart,isVisible
rowsNum = 0
tableCount = 1
fontName = " "
fontSize = 10
'-----------------------------------------------------------------------------
' Main function
'-----------------------------------------------------------------------------
' Get the current active model
Dim Model
Set Model = ActiveModel
If (Model Is Nothing) Or (Not Model.IsKindOf(PdPDM.cls_Model)) Then
MsgBox "The current model is not an PDM model."
Else
' Get the tables collection
' EXCEL APP
DIM EXCEL, SHEET,SHEET1
set EXCEL = CREATEOBJECT("Excel.Application")
EXCEL.workbooks.add(-4167)'
set sheet1 = EXCEL.workbooks(1).Sheets(1) ' sheet
sheet1.name = " "
sheet1.cells(1,1) = " "
sheet1.Columns(1).ColumnWidth = 40
sheet1.Columns(1).Font.Name = fontName
sheet1.Columns(1).Font.Size = fontSize
sheet1.cells(1,2) = " "
sheet1.Columns(2).ColumnWidth = 30
sheet1.Columns(2).Font.Name = fontName
sheet1.Columns(2).Font.Size = fontSize
sheet1.cells(1,3) = " "
sheet1.Columns(3).ColumnWidth = 50
sheet1.Columns(3).Font.Name = fontName
sheet1.Columns(3).Font.Size = fontSize
EXCEL.visible = true
ShowProperties Model
End If
'-----------------------------------------------------------------------------
' Show properties of tables
'-----------------------------------------------------------------------------
Sub ShowProperties(mdl)
' Show tables of the current model/package
rowsNum=0
' For each table
output "begin"
Dim tab
For Each tab In mdl.tables
'
ShowTable tab
Next
if mdl.tables.count > 0 then
'sheet.Range("A" & beginrow + 1 & ":A" & rowsNum).Rows.Group
end if
output "end"
End Sub
'-----------------------------------------------------------------------------
' Show table properties
'-----------------------------------------------------------------------------
Sub ShowTable(tab)
If IsObject(tab) Then
tableCount = tableCount + 1
'
'sheet1.cells(tableCount,1) = tab.name
sheet1.Hyperlinks.Add sheet1.Range("A"&tableCount), "", tab.code&"!B1", "", tab.name
sheet1.cells(tableCount,1).Font.Name = fontName
sheet1.cells(tableCount,1).Font.Size = fontSize
sheet1.cells(tableCount,2) = tab.code
sheet1.cells(tableCount,3) = tab.comment
' sheet
set SHEET = EXCEL.workbooks(1).Sheets.Add
sheet.Name = tab.code
'
sheet.Columns(1).ColumnWidth = 20
sheet.Columns(2).ColumnWidth = 20
sheet.Columns(3).ColumnWidth = 20
sheet.Columns(4).ColumnWidth = 10
sheet.Columns(5).ColumnWidth = 10
sheet.Columns(6).ColumnWidth = 30
'
sheet.Columns(1).Font.Name = fontName
sheet.Columns(2).Font.Name = fontName
sheet.Columns(3).Font.Name = fontName
sheet.Columns(4).Font.Name = fontName
sheet.Columns(5).Font.Name = fontName
sheet.Columns(6).Font.Name = fontName
'
sheet.Columns(1).Font.Size = fontSize
sheet.Columns(2).Font.Size = fontSize
sheet.Columns(3).Font.Size = fontSize
sheet.Columns(4).Font.Size = fontSize
sheet.Columns(5).Font.Size = fontSize
sheet.Columns(6).Font.Size = fontSize
Dim rangFlag
rowsNum = 1
' Show properties
Output "================================"
sheet.cells(rowsNum, 1) = tab.name
sheet.cells(rowsNum, 2) = tab.code
sheet.cells(rowsNum, 3) = tab.comment
rowsNum = rowsNum + 1
'
sheet.rows(rowsNum).Font.Bold = true
sheet.rows(rowsNum).Interior.Color = RGB(217,217,217)
sheet.cells(rowsNum, 1) = " "
sheet.cells(rowsNum, 2) = " "
sheet.cells(rowsNum, 3) = " "
sheet.cells(rowsNum, 4) = " "
sheet.cells(rowsNum, 5) = " "
sheet.cells(rowsNum, 6) = " "
'
'sheet.Range(sheet.cells(rowsNum-1, 1),sheet.cells(rowsNum, 2)).Borders.LineStyle = "1"
'sheet.Range(sheet.cells(rowsNum-1, 4),sheet.cells(rowsNum, 6)).Borders.LineStyle = "1"
Dim col ' running column
Dim colsNum
colsNum = 0
for each col in tab.columns
rowsNum = rowsNum + 1
colsNum = colsNum + 1
sheet.cells(rowsNum, 1) = col.name
sheet.cells(rowsNum, 2) = col.code
sheet.cells(rowsNum, 3) = col.datatype
sheet.cells(rowsNum, 4) = col.primary
sheet.cells(rowsNum, 5) = col.defaultvalue
sheet.cells(rowsNum, 6) = col.comment
next
'sheet.Range(sheet.cells(rowsNum-colsNum+1,1),sheet.cells(rowsNum,2)).Borders.LineStyle = "2"
'sheet.Range(sheet.cells(rowsNum-colsNum+1,4),sheet.cells(rowsNum,6)).Borders.LineStyle = "2"
rowsNum = rowsNum + 1
Output "FullDescription: " + tab.Name
End If
End Sub
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Excel Grep toolExcel Grep tool ■히나가타 ■ 시트 구성 ExcelGrep.cls...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.