π νμ λ§€ν¬λ‘λ‘ μΌνκΈ° (1)
λͺλͺ νΉλ³ν 보μ§μ΄ μλλΌλ©΄ κ΅°λμμ μΌνλ©΄μ μ½λ©κ³Ό κ°μ₯ κ°κΉμ΄ κ²½νμ νμ μ λ§€ν¬λ‘ μ€ν¬λ¦½νΈμΌκ²μ΄λ€. μμ VBAμμ λͺλͺ κΈ°λ₯μ΄ λΉ μ§, μ’ λ λΆνΈν 물건μΈλ°, κΈ°λ³Έμ μΌλ‘ κ°λ₯μ±μ 무κΆλ¬΄μ§νλ€λ³΄λ μ μ©νκ²λλ€. νμ λ³μΌλ‘ κ·Ό 1λ κ°κΉμ΄ 근무νλ©΄μ λ§€ν¬λ‘λμ λ§μ΄ 보μλ€. μλ§ μ 곡μλ λμ²λΌ μ·¨λ―Έλ‘νλ , μμ λ§€ν¬λ‘λ₯Ό 곡λΆν΄λ³Ό μΌμ κ±°μ μμμ κ²μ΄λΌκ³ μκ°νλ€. μ μ΄μ μμ μμ VBAλ₯Ό μ΄λ€λ κ² λΆν° μ²μ μκ²λμλ€. μ 곡μλΌλ©΄ VBAκ° μλ κ°λ¨ν΄μ κ΅³μ΄ μ΄ μ리μ¦κ° μλλλΌλ μ΄μ λ μ¬μ©λ²μ μΆ©λΆν μκ°ν΄λΌ μ μμ κ²μ΄λΌκ³ μκ°νλ€. νμ λ§€ν¬λ‘λ‘ μΌνκΈ° μ리μ¦λ λΉμ 곡μλ₯Ό λμμΌλ‘ κ΅°λμμ λ§μ΄ μ°μΌλ²ν μ¬λ¬κ°μ§ νλ‘κ·Έλ¨(?)λ€μ λ§λ€μ΄λ³΄λ©΄μ λ΄κ° μ€μ€λ‘ λ°°μ΄ νμ κ³Ό νμ λ§€ν¬λ‘λ‘ μ‘°κΈ λ νΈνκ² μΌνλ λ°©λ²μ μκ°ν΄λ³΄λ € νλ€.
VBAλ λΆλͺ ν μ¬μ΄μΈμ΄μ΄κ³ , μμ (νμ ) λ§€ν¬λ‘λ κ·Έμ€μμλ μΈμ΄ μμ²΄κ° μ΄λ €μΈ λΆλΆμ΄ μλ€μνΌνκΈ°λλ¬Έμ λΉ λ₯΄κ² λ°°μΈ μ μμμ§λ§, μμ£Ό κΈ°μ΄μ μΈ νλ‘κ·Έλλ° μΈμ΄μ λν μ΄ν΄λ νμν κ² κ°λ€. νΉν κ°μ²΄μ§ν₯νμΈλ§νΌ Pythonμ μ‘°κΈμ΄λΌλ λ°°μλ μνμμ λ°°μ κΈ°λλ¬Έμ 빨리 λ°°μΈ μ μμλ κ² κ°λ€. μ΅λν μμΈνκ² μ€λͺ ν΄λ³΄κ² μ§λ§, μ΄ μ리μ¦λ νλ‘κ·Έλλ° μ리μ¦κ° μλλΌ μ€μ νμ (μμ μ΄λ λ€λ₯Έμ μ μμ§λ§)μ΄κΈ°λλ¬Έμ νμ μ΄μμ μ€λͺ μ νμ§ μμ κ²μ΄λ€.
μμνκΈ° μ μ
λ¨Όμ λ§€ν¬λ‘λ μ€ν¬λ¦½νΈ νΈμ§κΈ°λΌλ μ°½μμ λ§λ€κ²λλλ°, SWμλ£μ€μ μ°Ύμ보면 **Notepad++**κ° μλ€. Atom, VSCodeλ₯Ό κΈ°λν μ μλ€. (VBAμμ²΄κ° μλ λ¨μν΄μ κ·Έλ₯ νμμ±μ λͺ»λλΌκ² λκΈ°λ νλ€.) Notepad++μμ λ§λ€κ³ λΆμ¬λ£λ μμ΄ ν¨μ¬ νΈνλ€. νμ λ§€ν¬λ‘κ° μλ μλ¬κ° μ¦κ³ μμ£Ό ν κΈ°κΈ°λν΄μ νμ°Έ λ§λ€λ€κ° μ λΆ λ λ €λ¨Ήλ μΌμ΄ λ§μλ€. ν κΈ°λκ±Έ λ³΄κ³ λλ²κΉ μ ν΄μΌν λλ λ§λ€.
λ§€ν¬λ‘λ μΌλ°μ μΈ μμμ΄λ μ΄λ€μ μ΄ λ€λ₯ΌκΉ? λ°μ΄ν° μμΈ, μ‘°νλ±μ μμλ§μΌλ‘λ μΆ©λΆνλ€. νμ§λ§ 1) λ°μ΄ν° μμ΄ μμ² λ§λ€λ©΄ 2) λ°μ΄ν°μ μ λ ₯, μμ μ ν΄μΌν κ²½μ°μ λ§€ν¬λ‘κ° νμνλ€. 쑰건μ λ§μ‘±νλ κ°μ μ°Ύμμ£Όλ κ²μ μμμΌλ‘ μΆ©λΆνμ§λ§, 쑰건μ λ§μ‘±νλ κ°μ μμ νλ κ²μ κΈ°λ³Έ κΈ°λ₯μΌλ‘λ λΆκ°λ₯νλ€. λ§€ν¬λ‘ λ ΉνκΈ°λ₯λ λ¨μμμ μ λ°λ³΅ν μ μκ² μ§λ§, κ±°μ λͺ¨λ κ²½μ°μλ μλ―Έκ° μλ€.
λ§€ν¬λ‘κ° μ μ©νκ² μ°μΈ μΌλ‘λ‘ λ§μΌλ¦¬μ§(λλ μλ²μ )μ΄ μλ€. μ°λ¦¬ μ€λμμλ λ§μΌλ¦¬μ§ μ λκ° μμλλ°, λ§μΌλ¦¬μ§ μ 립 λ΄μμ κΈ°λ‘νλ©΄μ μ¬μ©ν λλ§λ€ μ°¨κ°μ ν΄μΌνλ€. μ°μμ μΈ κΈ°λ‘μ νκ³ μ‘°ννλ κ²μ κΈ°λ³Έ μμ μ κΈ°λ₯μΌλ‘λ μΆ©λΆνμ§λ§, μ°¨κ°μ μ‘°κΈ κΉλ€λ‘λ€. μ 립/μ¬μ©νλ €λ μ¬λμ΄ λͺ°λ €λ€λ©΄ μ§μ λ‘κ·Έλ₯Ό μμ±νλ κ² λ§λ₯ κΈ°λ‘νλ κ²μ ν¨μ¬ λΆνΈν κ²μ΄λ€. λ§μΌλ¦¬μ§ κΈ°λ‘ κ΄λ¦¬λ₯Ό λ§‘κ² λ ν, μ μμ κ°λ°κΈ°κ° λμ(λͺμΌμ κ±Έλ¦° λ― νλ€) λ§€ν¬λ‘λ₯Ό μ¬μ©ν΄ ν μνΈμμ λ‘κ·Έ νμΈ/μ 립/μ¬μ©μ λͺ¨λ ν μ μμλ€.
μ ν΄μ§ νμμ λ¬Έμμ κ°κΈ° λ€λ₯Έ κ°μ λ£κ³ μΈμν΄μΌνλ μμ μ΄ μμλλ°, λ°μ΄ν° κ°μ΄ λ§€μ° λ§λ€λ©΄ λ§€ν¬λ‘κ° μ μ©ν μ μλ€. λ³΄ν΅ ν νμμ μΈμλ¬Όμ λ§λ€λλ©΄ μ무리 λ€λ₯Έ κ°μ΄ λ§μλ νκΈλ‘ λ§λ€κ³€ νλλ°, νκΈμ λ¨μΆν€λ±μ μ΅μνλ€ν΄λ μ¬μ©μκ° νΈμ§νλλ°μ μ€νλ λμνΈ νλ‘κ·Έλ¨λ³΄λ€λ λ릴 μ λ°μ μλ€. κ³ μ λ νμμ κ°λ§ λ°κΏλ£μ΄ μΈμνλ κ²μ΄λΌλ©΄, λ§€ν¬λ‘λ₯Ό λ§λ€μ΄ μΈμνλ κ²μ΄ μκ°μ μ λ§ λ§μ΄ μ€μ¬μ€ μ μλ€.
λ§€ν¬λ‘λ νμ μμ μλ κ·Έλ₯ μ μ©νμ§ μμλ€. νμμ μ€λ₯λ μ¦μκ³ , μκ°λλ‘ λμ§ μλ κ²½μ°κ° λ§μλ€. λν νμ μμ²΄κ° μμ μ±μ΄ λΉκ΅μ λ¨μ΄μ§κ³ , PCμ±λ₯μλ νκ³κ° μμ΄ μΌμ ν¬κΈ° μ΄μμ λ¬Έμμμλ μ¬μ©νκΈ° νλ€μλ€.
λλ μ 곡μκ° μλλΌ, μ΄ μ리μ¦μμ μ€λͺ ν λ°©λ²λ€μ μκ³ λ¦¬μ¦μλν μ΄ν΄μμ λμΆλ λ°©λ²λ³΄λ€λ μ€μ μμ μ¨λ¨ΉκΈ°μν΄ μκ°ν΄λΈ λ°©λ²λ€μ΄ λλΆλΆμ΄λ€. κ·Έλ₯ μΈμΌμ μμμ§λ§ μ λ ¬μ λλ λμμ΄ λλ κ² κ°λ€. Naming Conventionμ κ±°μ μ§ν€μ§ μμκ³ , λλΆλΆμ κ²½μ°μ camelCaseλ₯Ό μ¬μ©νλ€. μΆκ°λ‘ μ± μμ λ§€ν¬λ‘ VBA λ°μ΄λΈμ λμμ λ§μ΄ λ°μλ€.