최근 수정 시각 : 2022-05-15 03:05:11

Visual Basic for Applications

VBA에서 넘어옴

파일:나무위키+유도.png  
은(는) 여기로 연결됩니다.
GBA 에뮬레이터에 대한 내용은 VisualBoyAdvance 문서
번 문단을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
참고하십시오.

파일:나무위키+유도.png  
은(는) 여기로 연결됩니다.
일본의 연예기획사 LDH에서 주최하는 오디션인 VOCAL BATTLE AUDITION에 대한 내용은 EXILE TRIBE 문서
번 문단을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
참고하십시오.
파일:Microsoft 로고.svg
{{{#!wiki style="margin:0 -10px -5px"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin:-6px -1px -11px"
{{{#000,#e5e5e5
산하 계열사 및 사업부
GitHub · .NET Foundation · Xbox Game Studios · LinkedIn
제품군
하드웨어 Surface · Xbox · HoloLens · PixelSense · Zune
소프트웨어 Windows · Office · Edge · Media Player · Hyper-V · Microsoft Defender · Visual Studio Code · Visual Studio · Windows Terminal · Microsoft PowerToys · Internet Explorer · MS-DOS · Windows Movie Maker · Autoruns
서비스 Microsoft Azure · OneDrive · Skype · MSN · Bing · LinkedIn · Cortana · 테이 · Xbox network · 정품 인증 · MSDN
관련 기술 ASF · ASP · Blazor · COM · DCOM · DirectX · 파일 시스템( FAT · NTFS · ReFS) · MFC · .NET( .NET Core · .NET Standard · C# · F# · Visual Basic .NET · Windows Forms · WPF · Universal Windows Platform · ASP.NET · ML.NET) · OLE · Silverlight · Visual Basic · VBA · WASAPI · Windows 커널 · Windows 디자인 · Windows API · Windows Runtime · WMA · WMV · Xamarin · XNA
관련 인물
빌 게이츠(은퇴) · 폴 앨런(은퇴) · 스티브 발머(퇴사) · 게이브 뉴웰(퇴사) · 사티아 나델라 · 필 스펜서
기타
Microsoft의 제니맥스 미디어 인수 · Microsoft의 액티비전 블리자드 인수 · 빌 게이츠의 굴욕
관련 틀
365 제품군 · 하드웨어 제품군 · Surface 제품군 · Windows 제품군
}}}}}}}}}}}} ||

{{{#!wiki style="margin: -5px -10px; padding: 10px 0px; color:#fff; background-image: linear-gradient(to right, #33CCCC , #0066DC); word-break:keep-all"
컴퓨터 과학 & 공학
Computer Science & Engineering

{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin:-8px -1px -11px"
<tablewidth=100%><colbgcolor=#eee,#555>기반 학문 <colbgcolor=#fff,#1f2023> 수학 ( 공업수학 · 해석학 · 이산수학 · 수리논리학 · 선형대수학 · 미적분학 · 대수학 ( 환론 · 범주론) · 정수론) · 이론 컴퓨터 과학 · 암호학 · 전자공학 · 언어학 ( 형태론 · 통사론 · 의미론 · 화용론 · 음운론) · 인지과학
SoC · CPU · GPU( 그래픽 카드 · GPGPU) · ROM · RAM · SSD · HDD · 참조: 틀:컴퓨터 부품
기술 기계어 · 어셈블리어 · C( C++ · C#) · Java · Python · BIOS · 절차적 프로그래밍 · 객체 지향 프로그래밍( 디자인 패턴) · 해킹 · ROT13 · OTP · IoT · 와이파이 · GPS · 임베디드 · 인공신경망 · OpenGL · EXIF · 마이크로아키텍처 · ACPI · UEFI · NERF · gRPC · 리버스 엔지니어링 · HCI · UI · UX · 대역폭 · DBMS · NoSQL · 해시( SHA · 브루트 포스 · 레인보우 테이블 · salt · 암호화폐) · RSA 암호화
연구및 기타 문서 논리 회로( 보수기 · 가산기 · 불 대수 · 플립플롭) · 정보이론 · 디자인 패턴 · 데이터베이스 · 프로그래밍 언어{ 컴파일러( 어셈블러 · JIT) · 인터프리터 · 유형 이론} · 메타데이터 · 딥러닝 · 빅데이터 · 폰노이만 구조 · 양자컴퓨터 · 행위자 모델 · 인코딩( 유니코드 · MBCS) · 네트워크 · 컴퓨터 보안 · OCR · 슈퍼컴퓨터 · 튜링 머신 · FPGA · 딥러닝 · 컴퓨터 비전 · 컴퓨터 그래픽스 · 인공지능 · 시간 복잡도( 최적화) · 소프트웨어 개발 방법론 · 정보처리이론 · 재귀 이론 · 자연 언어 처리( 기계 번역 · 음성인식) }}}}}}}}}

프로그래밍 사이트 선정 상위 점유율 프로그래밍 언어 목록
{{{#!wiki style="margin: 0 -10px -5px"
{{{#!wiki style="display:inline-block; margin:0 0 -5px; min-width:25%"
{{{#!folding ⠀[ IEEE Spectrum 2021 ]⠀
{{{#!wiki style="margin:-6px -1px -10px"
IEEE Spectrum에서 집계한 2021년 기준, 웹 분야 상위 10개 프로그래밍 언어
1 Python 2 Java 3 Javascript 4 C# 5 Go
6 HTML 7 PHP 8 Dart 9 Ruby 10 Rust
IEEE Spectrum에서 집계한 2021년 기준, 모바일 분야 상위 10개 프로그래밍 언어
1 Java 2 C 3 C++ 4 C# 5 Swift
6 Dart 7 Kotlin 8 Scala 9 Objective-C 10 Delphi
}}}}}}}}}
⠀[ Stack Overflow 2021 ]⠀
||<table width=100%><width=2000><-10><bgcolor=#FFA500><table bgcolor=#fff,#222> Stack Overflow에서 조사한 2021년 기준 사용률 상위 25개 프로그래밍 언어
1 JavaScript 2 HTML, CSS 3 Python 4 SQL 5 Java
6 Node.js 7 TypeScript 8 C# 9 Bash 10 C++
11 PHP 12 C 13 PowerShell 14 Go 15 Kotlin
16 Rust 17 Ruby 18 Dart 19 어셈블리어 20 Swift
21 R 22 VBA 23 MATLAB 24 Groovy 25 Objective-C
⠀[ TIOBE 2022 ]⠀
||<table width=100%><width=2000><-10><bgcolor=deepskyblue><table bgcolor=#fff,#222> TIOBE에서 선정한 2022년 2월 기준 검색어 점유율 상위 20개 프로그래밍 언어
1 Python 2 C 3 Java 4 C++ 5 C#
6 Visual Basic .NET 7 JavaScript 8 PHP 9 어셈블리어 10 SQL
11 Classic
Visual Basic
12 R 13 Go 14 Fortran 15 Groovy
16 Swift 17 Ruby 18 Perl 19 MATLAB 20 Delphi /
Object Pascal
{{{#!wiki style="margin:0 -10px -5px"
{{{#!folding [ 21위 ~ 50위 펼치기 · 접기 ]
{{{#!wiki style="margin:-6px -1px -10px"
21 Objective-C 22 Prolog 23 Scratch 24 SAS 25 LISP
26 COBOL 27 Rust 28 Ada 29 Dart 30 Transact-SQL
31 PL/SQL 32 ABAP 33 VBScript 34 LabVIEW 35 Julia
36 Scala 37 TypeScript 38 Kotlin 39 Haskell 40 Lua
41 Apex 42 Visual FoxPro 43 Bash 44 Scheme 45 D
46 PL/I 47 Elixir 48 Logo 49 PostScript 50 Ladder Logic }}}}}}}}}
⠀[ PYPL 2022 ]⠀
||<table width=100%><width=2000><-10><bgcolor=green><table bgcolor=#fff,#222> PYPL에서 선정한 2022년 3월 기준 검색어 점유율 상위 20개 프로그래밍 언어
1 Python 2 Java 3 JavaScript 4 C# 5 C/ C++
6 PHP 7 R 8 Objective-C 9 TypeScript 10 Swift
11 MATLAB 12 Kotlin 13 Go 14 Rust 15 Ruby
16 VBA 17 Ada 18 Abap 19 Dart 20 Visual Basic
}}}
프로그래밍 언어 목록 · 분류 · 문법


파일:vba-실행-화면.png
파일:FXj6VRR.png

1. 개요2. 사용 프로그램3. 문제점4. 기타

1. 개요

Microsoft Office에 내장되어 있는 프로그래밍 언어. 주 용도는 매크로를 돌리고 사용자 정의 함수를 사용하는 것. 마이크로소프트의 비주얼 베이직 6.0에서 시작된 언어로, 문법이 같다는 것을 보면 쉽게 알 수 있다. 6.0에서 만들어졌기 때문에 Visual Basic .NET에는 호환되지 않는다. 마이크로소프트가 .NET으로 넘어가라고 권장하고 있는데도 아직도 6.0이 생명력을 유지하는 이유도 이 때문이다.

컴활 1급의 최종 보스.

2. 사용 프로그램

주로 Microsoft Excel에서 많이 사용되기 때문에 엑셀 전용으로 오해를 많이 받는다. 하지만 액세스, 워드 등의 응용 프로그램에서도 사용할 수 있다. 워드는 매크로 기능을 사용할 일이 없고, 파워포인트는 파워포인트 아트를 하는 사람만 사용하고, 액세스는 기본 기능부터가 강력한 탓에 굳이 VBA를 쓸 필요가 거의 없기 때문에 이러한 인식이 생기게 됐다고 볼 수 있다.

2.1. Microsoft Access

원래 VBA는 액세스를 위해 만들어졌다. 데이터베이스 프로그램인 액세스를 떠받치는 SQL 구문이 바로 프로시저이기 때문이다. 그래서 액세스에서는 프로시저 프로그래밍을 열심히 해야 한다.

컴퓨터활용능력 1급의 꽃이다. 액세스 분야에서는 전체 점수의 45점이 프로시저 작성과 관련이 있으므로 이걸 못하면 탈락 가능성이 매우 높다.[1]

2.2. Microsoft Excel

엑셀은 분명 문서작성용이지만 한국에서는 다양한 일로 굴려지고 있다. 특히, 쓰라는 액세스는 안 쓰고 엑셀로 데이터베이스를 관리하는 경우가 왕왕 있는데 VBA는 이런 일을 가능하게 하도록 돕는 역할을 한다. 혹은 수식을 사용해서 해결하기 어려운 문제를 한 번에 해결해주는 해결사 역할을 맡기도 한다. UDF(User defined function)등의 사용자 정의 함수를 만들어 낼 수도 있다. 기능경시대회(정보기술)에서 이 VBA의 많은 부분을 활용하여 과제를 푼다.

컴퓨터활용능력 1급에서 VBA 프로시저 작성이 25점을 차지한다. 한국에서 액셀을 데이터베이스용 프로그램으로 쓰는 몹쓸 기업들이 많다 보니 대한상공회의소에서도 현실반영을 한 셈이다. 이거 못 하면 낙방할 가능성이 높다.[2]

2.3. Microsoft PowerPoint

쓰는 곳이 거의 매크로밖에 없다시피 하고 그 매크로마저도 쓸 일이 거의 없는 파워포인트에서도 쓰는 사람이 있는데, 다름아닌 게임 제작용이다. VBA의 기능이 워낙 강력한터라 충분히 UI 제작도 가능해서 게임, OS 시뮬레이터 등등 다양한 방면으로 굴려지고 있다. 자세한 내용은 파워포인트 아트 문서를 참조.

굳이 사용처를 찾자면, 숨기기한 슬라이드가 있을 때, 당연히 숨기지 않은 슬라이드의 슬라이드 번호가 건너뛰어지게 된다. 예를 들어 1, 2, 3, 4, 5 다섯장의 슬라이드가 있을 때, 3번 슬라이드를 숨기기하면 슬라이드쇼 또는 인쇄한 슬라이드에는 1, 2, 4, 5의 순으로 번호가 매겨진다. 그러나 VBA를 이용하여 코딩을 해주면, 이런 경우에도 번호가 1, 2, 3, 4 순으로 나오게 할 수 있다.

3. 문제점

앞서 말한 '매크로용이라고 보기 힘들 정도의 강력함'으로 인한 문제 또한 있다. 흔히 매크로 바이러스라고 부르는 존재가 바로 VBA로 만든 바이러스이다. VBA를 구동하기 위해서 윈도의 다양한 라이브러리를 참조할 수 있게 해놨기 때문에 역으로 보안성이 취약해진 것이다. 덕분에 최신 MS 오피스로 넘어올수록 점차 VBA가 자동으로 돌아가는 것을 막기 위해서 봉인하고 있다. 2003 버전은 기본 설정을 비활성화로 해두어 별도로 실행하게 하였고, 2007부터는 포맷을 대격변하면서 VBA를 별도의 파일(*.xlsm, *.pptm, *.ppsm 등)로 분리시켜놓았다.

2019년 Stack Overflow 개발자 설문조사 결과 건드리기 무서운(Dreadful Language) 언어로 꼽혔다. 2위는 Objective-C. 이와 관련하여 VBA가 까이는 이유를 언어 자체보다 VBA 코드 개발창의 구식을 문제삼기도 했다. 링크

4. 기타

VBA를 이용해서 단순한 반복 작업을 하는 것에 만족하지 않고 잉여력(?)을 발휘하여, 게임 등을 만드는 시도가 있다.
(아래는 그 사이트들 중 일부)

[1] 액셀에서 배열수식이 주적이라면 액세스에서는 VBA가 주적에 가깝다. 사실 구문의 난이도가 특별히 높은 건 아니지만 &과 “,’의 사용이 까다롭기 때문이다. [2] 사람에 따라 계산작업 문제보다는 VBA를 더 쉽게 느낄 수도 있다.