반응형
□ 소개
1행 10개, 2행 5개를 조합하여, 곱하는 코드 입니다
▷ 액셀 파일
▷ 코드
Sub MultiplyArrays()
Dim array1(1 To 10) As Double
Dim array2(1 To 5) As Double
Dim resultArray(1 To 10, 1 To 5) As Double
Dim i As Integer, j As Integer
' 1행 배열 값 할당
For i = 1 To 10
array1(i) = Cells(i, "A").Value
Next i
' 2행 배열 값 할당
For i = 1 To 5
array2(i) = Cells(i, "B").Value
Next i
' 결과 배열 계산
For i = 1 To 10
For j = 1 To 5
resultArray(i, j) = array1(i) * array2(j)
Next j
Next i
' 결과 배열 출력
For i = 1 To 10
For j = 1 To 5
Cells(i, j + 5).Value = resultArray(i, j)
Next j
Next i
End Sub
▷ 실행 결과
□ 소개
ChatGTP를 사용하여 VBA 코드를 생성 하였습니다. Creo 모델의 치수 값을 자동으로 변경 하면서 면적을 구하는 프로그램을 개발 하려 합니다. 배열을 이용하여 조합 할수 있는 치수들을 표합니다.
모델의 치수 이름 "DIM01"에 10 ~ 100까지 치수 값을 입력 할수 있습니다 (변경 범위), DIM02"에 40 ~ 50까지 치수 값을 입력 할수 있습니다. 2개의 치수 값을 조합 할수 있는 경우의 수는 "10 * 5 = 50개" 입니다.
▷ 코드 (ChatGTP가 생성하였습니다)
Sub dimCombination()
Dim dim01range As Range
Dim dim02range As Range
Dim dim01Array() As Variant
Dim dim02Array() As Variant
Set dim01range = Worksheets("Area").Range("D7", Cells(Rows.Count, "D").End(xlUp))
Set dim02range = Worksheets("Area").Range("E7", Cells(Rows.Count, "E").End(xlUp))
dim01Array = dim01range.Value
dim02Array = dim02range.Value
Dim i As Long, j As Long
Dim outputRow As Long
outputRow = 1 '// 출력할 행 인덱스 초기화
For i = LBound(dim01Array) To UBound(dim01Array)
For j = LBound(dim02Array) To UBound(dim02Array)
If outputRow <= (UBound(dim01Array) * UBound(dim02Array)) Then
Cells(6 + outputRow, "H").Value = dim01Array(i, 1)
Cells(6 + outputRow, "i").Value = dim02Array(j, 1)
outputRow = outputRow + 1 '// 다음 출력 행 인덱스로 이동
End If
Next j
Next i
End Sub
▷참고 자료
▷ 실행 결과
50개의 조합의 값을 표시 합니다. ChatGTP를 이용하면 초보자도 프로그램 개발이 가능 합니다.
영업문의 : lionkk@idt21c.com
카카오 채널 : http://pf.kakao.com/_fItAxb
'VBA For Creo' 카테고리의 다른 글
#1 IpfcModel (0) | 2023.08.18 |
---|---|
#2 quilt의 면적 표시 - 고급 편 (0) | 2023.08.16 |
#1 quilt의 면적 표시 (0) | 2023.08.15 |
#9 IpfcBaseSession.Select() - Surface (0) | 2023.08.14 |
#8 IpfcBaseSession - 파일 Create Function (0) | 2023.08.12 |