코딩
-
VBA/파워포인트/사진정리 - 0. 개요코딩/vba 2024. 1. 10. 14:01
맥에서 키노트로 열심히 사진을 정리하던 중, 왜 내가 이 노가다를 하고 있나 하는 자괴감이 생겨 파워포인트에서 자동정렬하는 VBA 코드를 만들었다. 키노트에서는 자동화를 할 수 있는 방법이 없다. MS가 Basic을 개발하고, 그 Basic을 Q-Basic으로, 또 Visual Basic과 VBA로 발전시킨건 더 말할 필요없이 찬사받아야 할 정책이었다. 거기다 공짜, MS의 Basic에 대한 열정은 높이 사줘야 한다. 모두 12개의 프로시저를 만들었다. Main_으로 시작하는 두 개의 메인 프로시저와 세 개의 유틸리티, 나머지는 서브 프로시저들이다. 메인은 사진들을 붙여넣는 기능과 사진을 정렬하는 기능으로 나눴다. 사진을 붙여넣고 나서 수동으로 사진을 슬라이드 별로 검토하고 삭제하거나 옮기는 일을 하고,..
-
VBA/버블정렬(Bubble sort)코딩/vba 2024. 1. 9. 15:54
VB에는 Array.Sort()라는 함수가 있어 배열정렬이 가능하지만 VBA에서는 정렬함수가 따로 없다. 그래서 배열을 정렬할 함수를 별도로 만들어 써야 하는데, 그 중 많이 쓰이는 것이 코드가 간단한 버블정렬이다. 좀 느리긴 하지만 코드가 짧아 편리하다. 원리는 배열 원소의 처음부터 끝까지 하나씩 비교해가면서 좌우를 바꾸는 방식이다. 보다 상세한 내용은 위키백과를 참조한다. 그리고 위키백과나 다른 참조자료들의 그림은 직관적이지 않아 새로 그려 원리를 설명한다. 비교는 아래 그림처럼 한다. ' 인수로 받는 arr 배열은 값이 아닌 참조로 받으며 variant값으로 정의 Sub BubbleSort(ByRef arr As Variant) Dim i As Integer, j As Integer Dim tmp ..
-
VBA/PowerPoint/슬라이드 사이즈 픽셀 단위로 구하기코딩/vba 2024. 1. 9. 02:22
파워포인트에서는 cm로 사진이나 도형의 크기를 지정한다. 물론 크기를 지정할 때 px 단위로 입력은 가능하다. 하지만 이것이 대량의 자료를 자동으로 처리하려고 할 때 꽤 귀찮다. 그래서 픽셀단위로 자동화를 하려고 할 때 슬라이드 사이즈를 먼저 알아야 다음 자동화를 할 수 있다. 그래서 현재 슬라이드의 크기를 알 수 있는 코드를 작성한다. Sub GetSlideSize() Dim currentSlide As slide Dim slideWidth As Integer Dim slideHeight As Integer ' 현재 활성 슬라이드 가져오기 Set currentSlide = ActiveWindow.View.slide ' 슬라이드의 픽셀 단위 크기 가져오기 slideWidth = currentSlide.M..
-
VBA/.Value와 .Formula의 차이코딩/vba 2023. 12. 21. 15:08
나는 아마추어 프로그래머라서 코딩을 자주 하는 편은 아니고 필요할 때 그때 그때 한다. 그러다보니 한 번 코딩하고 난 뒤 한참 뒤에 다시 사용하려고 하면 기본부터 헷갈린다. 어제까지 파이썬을 써서 만든 자료를 엑셀에서 수식으로 연동시키려 몇 달 동안 쓰지 않은 vba를 사용하려 하니 '뭘로 시작하더라???'라고 어이없게도 Sub부터 생각이 안난다. 아마 VBA를 직업적으로 쓰는 사람들은 별로 없으니 다른 사람들도 내 심정 이해가 되지 않을까 싶다. VBA로 셀에 수식이나 값을 입력할 때 .Value와 .Formula에 대한 구분법 Sub value_formula() Range("a1").Value = 100 Range("a2").Formula = 100 Range("b1").Value = "=a1+a2"..
-
Pythone/concat()을 사용하여 Pandas DataFrame을 합치기코딩/Python 2023. 12. 20. 15:54
concat() 두 개의 DataFrame이 같은 형식이고 헤더가 같은 경우, 아래는 두 DataFrame의 예시입니다. Pandas에서 두 개의 DataFrame을 합치는 방법은 concat 함수나 merge 함수를 사용하는 것입니다. 아래는 concat 함수의 예시입니다. import pandas as pd # 간단한 3x3 형식의 Pandas DataFrame 예시 # 첫 번째 DataFrame data1 = {'열1': [1, 2, 3], '열2': ['A', 'B', 'C'], '열3': [4.0, 5.5, 6.2]} # 데이터를 리스트로 만들기 df1 = pd.DataFrame(data1) # Pandas DataFrame으로 변환 # 두 번째 DataFrame data2 = {'열1': [7..
-
Python/Type hint 사용법코딩/Python 2023. 12. 20. 15:06
파이썬에서 함수의 리턴값의 데이터형을 지정하는 방법은 주로 함수의 주석(annotation)을 사용하거나, Python 3.5부터 도입된 타입 힌트(type hint)를 활용하는 것이 일반적입니다. 여기에서는 두 가지 방법에 대해 설명하겠습니다. 주석(annotation)을 사용하는 방법: 함수의 리턴값에 대한 주석을 작성하여 데이터형을 지정할 수 있습니다. 이 방법은 런타임에는 아무런 영향을 미치지 않지만, 코드를 읽는 사람에게 함수의 의도를 전달하는 데 도움이 됩니다. """...""" 주석을 사용하면 IDE에서 마우스를 호빙하여 타입 정보를 얻을 수 있습니다. def my_function(): """ return int
-
[VBA/Set 키워드] 개체 참조 Set 키워드코딩/vba 2023. 6. 6. 17:28
아마 VBA 초보프로그래머에게 가장 헷갈리는 것 중 하나가 set일 것이다. 어떤 변수는 그냥 정의하고 어떤 것은 set을 붙여야 한다. 그 기준에 대해 설명한다. 변수가 객체의 참조를 세팅하면 set, 객체 자체가 아닌 객체의 값만 가져올 때는 set을 사용하지 않는다. set을 사용하면 객체의 내용을 조작할 수 있다. set을 사용하지 않으면 객체에 저장된 값만을 불러온다. 객체에는 아무런 영향을 주지 않는다. 다시 말하면 객체를 직접 조작하기 위해서는 set을 사용하고 값만 필요한 객체는 set이 필요없다. VBA에서 Set 키워드를 사용하여 개체를 정의할 때와 그렇지 않을 때의 차이점은 다음과 같다. 참조 유형: Set 키워드를 사용하여 개체를 정의할 때, 변수는 해당 개체에 대한 참조를 보유한다..
-
[Python/재귀함수] 파이썬 재귀함수(Recursion): 반복의 아름다움과 함께하는 프로그래밍코딩/Python 2023. 5. 27. 22:24
파이썬은 강력한 프로그래밍 언어로, 다양한 기능과 편리한 라이브러리를 제공합니다. 그중에서도 재귀함수는 많은 개발자들에게 흥미로운 주제입니다. 재귀함수는 자기 자신을 호출하여 문제를 해결하는 방식으로 동작합니다. 이 글에서는 파이썬의 재귀함수에 대해 자세히 알아보고, 재귀함수를 사용하는 이유와 주의할 점에 대해 알아보겠습니다. 재귀함수의 개념과 작동 원리 재귀함수는 함수가 자기 자신을 호출하여 문제를 해결하는 방식으로 동작하는 함수입니다. 이를 통해 복잡한 문제를 간단하게 해결할 수 있습니다. 재귀함수는 다음과 같은 특징을 갖습니다. 재귀함수의 개념 재귀함수는 함수 내에서 자기 자신을 호출하는 방식으로 동작합니다. 이러한 호출은 반복적으로 이루어져야 하며, 종료 조건을 만족할 때까지 재귀 호출이 계속됩니..