나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2023-11-14 01:17:44

Visual Basic for Applications

VBA에서 넘어옴


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

파일:나무위키+유도.png  
은(는) 여기로 연결됩니다.
일본의 연예기획사 LDH에서 주최하는 오디션인 VOCAL BATTLE AUDITION에 대한 내용은 EXILE TRIBE 문서
번 문단을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
참고하십시오.
파일:Microsoft 로고.svg파일:Microsoft 로고 화이트.svg
{{{#!wiki style="margin:0 -10px -5px; min-height:calc(1.5em + 5px); word-break:keep-all"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin:-6px -1px -11px"
<colbgcolor=#393939,#737373><colcolor=#fff>제품군
하드​웨어Surface · Xbox · HoloLens · PixelSense · Zune · Pluton · IVAS
소프트​웨어Windows · Office · Edge · Media Player · Hyper-V · Defender · Visual Studio Code · Visual Studio · Windows Terminal · Microsoft Store · Xbox App · PowerToys · Internet Explorer · MS-DOS · Windows Movie Maker · Autoruns · Clipchamp
서비스Microsoft Azure · OneDrive · Microsoft Copilot · Bing · LinkedIn · Microsoft Docs · Skype · MSN · 정품인증 · Xbox Game Pass · Xbox Cloud Gaming · Xbox network
관련 기술ASF · ASP · Blazor · COM · DCOM · DirectX · 파일 시스템(FAT · NTFS · ReFS) · MFC · .NET(.NET Core · .NET Standard · C# · F# · Visual Basic .NET · Windows Forms · WPF · UWP · .NET MAUI · ASP.NET · ML.NET) · OLE · Q# · Silverlight · Visual Basic · VBA · WASAPI · Windows 커널 · Windows 디자인 · Windows API · Windows Runtime(UWP · WinUI 3) · WMA · WMV · Xamarin · XNA · 하복 엔진 · SAMI · PowerShell · Windows Modern Standby
산하 계열사 및 사업부GitHub · .NET Foundation · Microsoft Gaming · LinkedIn
관련 인물빌 게이츠(은퇴) · 폴 앨런(은퇴) · 스티브 발머(퇴사) · 게이브 뉴웰(퇴사) · 마이크 이바라(퇴사)
사티아 나델라 · 필 스펜서 · 브래드 스미스
기타제니맥스 미디어 인수 · 액티비전 블리자드 인수 · 시작 메뉴 · 빌 게이츠의 굴욕
관련 틀365 제품군 · 하드웨어 제품군 · Surface 제품군 · Windows 제품군}}}}}}}}}

프로그래밍 사이트 선정 프로그래밍 언어 순위 목록
{{{#!wiki style="margin: 0 -10px -5px; word-break: keep-all"
{{{#!wiki style="display: inline-table; min-width: 25%; min-height: 2em;"
{{{#!folding [ IEEE Spectrum 2024 ]
{{{#!wiki style="margin: -5px 0"
<rowcolor=#fff> 스펙트럼 부문 상위 10개 프로그래밍 언어 직업 부문 상위 10개 프로그래밍 언어
1 Python 1 SQL
2 Java 2 Python
3 JavaScript 3 Java
4 C++ 4 TypeScript
5 TypeScript 5 SAS
6 SQL 6 JavaScript
7 C# 7 C#
8 Go 8 HTML
9 C 9 Shell
10 HTML 10 C++
}}}
}}}
}}}
[ Stack Overflow 2024 ]
||<tablewidth=100%><width=9999><-4><bgcolor=#FFA500><tablebgcolor=#fff,#222> 2024년 Stackoverflow 설문조사 기준 인기 상위 25개 프로그래밍 언어 ||
1 JavaScript 14 Rust
2 HTML, CSS 15 Kotlin
3 Python 16 Lua
4 SQL 17 Dart
5 TypeScript 18 어셈블리어
6 Bash 19 Ruby
7 Java 20 Swift
8 C# 21 R
9 C++ 22 Visual Basic
10 C 23 MATLAB
11 PHP 24 VBA
12 PowerShell 25 Groovy
13 Go
[ TIOBE 2024 ]
||<tablewidth=100%><width=9999><-4><bgcolor=deepskyblue><tablebgcolor=#fff,#222> 2024년 8월 기준 검색어 점유율 상위 20개 프로그래밍 언어 ||
1 Python 11 MATLAB
2 C++ 12 Delphi / Object Pascal
3 C 13 PHP
4 Java 14 Rust
5 C# 15 Ruby
6 JavaScript 16 Swift
7 SQL 17 Assembly language
8 Visual Basic 18 Kotlin
9 Go 19 R
10 Fortran 20 Scratch
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px);"
{{{#!folding [ 21위 ~ 50위 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"
21 COBOL 36 Scala
22 Classic Visual Basic 37 Transact-SQL
23 LISP 38 PL/SQL
24 Prolog 39 ABAP
25 Perl 40 Solidity
26 (Visual) FoxPro 41 GAMS
27 SAS 42 PowerShell
28 Haskell 43 TypeScript
29 Dart 44 Logo
30 Ada 45 Wolfram
31 D 46 Awk
32 Julia 47 RPG
33 Objective-C 48 ML
34 VBScript 49 Bash
35 Lua 50 Elixir
}}}}}}}}} ||
[ PYPL 2024 ]
||<tablewidth=100%><width=9999><-4><bgcolor=green><tablebgcolor=#fff,#222> 2024년 8월 기준 검색어 점유율 상위 20개 프로그래밍 언어 ||
1 Python 11 Objective-C
2 Java 12 Go
3 JavaScript 13 Kotlin
4 C# 14 MATLAB
5 C/C++ 15 PowerShell
6 R 16 VBA
7 PHP 17 Dart
8 TypeScript 18 Ruby
9 Swift 19 Ada
10 Rust 20 Lua

}}} ||
프로그래밍 언어 목록 · 분류 · 문법


파일:vba-실행-화면.png
파일:Visual Basic for Applications 로고.svg

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

1. 개요

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

2. 사용 프로그램

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

2.1. Microsoft Access

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

컴퓨터활용능력 1급에서도 등장하긴 하지만 VBA를 직접적으로 사용하는 문제는 5점짜리 문제 딱 하나 뿐이며, SQL 쿼리를 작성하는 문제는 어지간해선 쿼리 작성기나 마법사 등 GUI 조작만으로 해결되어 SQL 구문이나 프로시저를 직접 건드릴 필요가 거의 없어 중요도는 낮다.

2.2. Microsoft Excel

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

컴퓨터활용능력 1급에서 VBA 프로시저 작성이 15점을 차지한다. 한국에서 액셀을 데이터베이스용 프로그램으로 쓰는 몹쓸 기업들이 많다 보니 대한상공회의소에서도 현실반영을 한 셈이다. 다만 15점 중 10점은 단순암기 수준으로 간단하고, 나머지 5점은 시간은 엄청나게 잡아먹는데 점수는 5점밖에 되지 않으니 그냥 포기하는 경우가 많다.

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