나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2024-10-14 16:25:11

Visual Basic

비주얼 베이식에서 넘어옴

파일:나무위키+유도.png  
은(는) 여기로 연결됩니다.
벨기에의 정당 VB에 대한 내용은 플람스의 이익 문서
번 문단을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
참고하십시오.

파일: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

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

#!syntax python
Private Sub Form_Load()
        MsgBox "Hello, world!"
End Sub
파일:vb6로드.png
1. 개요2. 버전 분류
2.1. Visual Basic 1.02.2. Visual Basic 2.0 ~ 5.02.3. Visual Basic 6.0
3. VB 지원 종료 이후4. 허술했던 라이선스 관리5. 제작된 게임6. 이스터 에그

[clearfix]

1. 개요

Visual Basic마이크로소프트 사에서 쉽고 간편하게 Windows 프로그램을 만들 수 있게 출시한 BASIC 프로그래밍 툴이다.

인터페이스가 매우 쉽고 간편하여 짧은 시간 안에 Windows 기반 프로그램을 만들 수 있다. 그리고 API, MFC처럼 코드로만 프로그래밍을 하는 것이 아니라, 도구 상자에 있는 여러 오브젝트들을 드래그 앤 드롭으로 프로젝트 내에 추가할 수 있다. 예를 들어서 API에서 커맨드 하나를 만들려면 긴 코드를 작성해야 하는데, 비주얼 베이직에서는 오브젝트를 끌어다 놓는 것 하나만으로 커맨드 하나를 만들 수 있다. 이처럼 쉬운 제작 환경 덕분에 다른 것들보다 훨씬 빨리 프로그램을 만들 수 있다.

컴퓨터활용능력/1급과 짝꿍이며, 프로시저ㆍ사용자 정의 함수에 필수로 쓰인다.

후속작은 Visual Basic .NET(VB.NET)이다.

2. 버전 분류

2.1. Visual Basic 1.0

파일:vb1.0.png

1991년 5월에 발표되었다. 사진은 윈도우용 비주얼 베이직 1.0이며[1], DOS용으로도 출시되었다.

윈도우용 파일. 윈도우 3.x대 프로그램은 16비트 어플리케이션인데 64비트 윈도우는 16비트 애플리케이션 지원 기능이 없으므로(AMD64 참고) 네이티브 실행이 불가능하다. 따라서 32비트 OS(Windows XP 등)로 실행하거나 가상머신으로 MS-DOS를 설치하고 실행하면 된다. 아니면 도스용 비주얼 베이직을 구해서 도스박스로 구동시켜도 된다. 물론 DOSBox나 PCem에 Windows 3.1을 설치하고 구동해도 되지만...

2.2. Visual Basic 2.0 ~ 5.0

파일:VB3-실행화면.png

각각 사용 가능 윈도우 버전이 올라갔다. 국내에서는 5.0 때부터 정보올림피아드 과제 수행을 하기도 하였다. 5.0부터는 16비트 윈도우에서 사용할 수 없다.

2.3. Visual Basic 6.0

파일:vb6로드.png
파일:vb6실행화면.png

1998년에 출시되었고, 2005년에 지원 중단된 Visual Basic의 마지막 버전. 아직도 점유율 20위 안에 드는 언어다. # 이 버전을 끝으로 .NET Framework 기반의 Visual Basic .NET으로 넘어갔다.

Microsoft 365에서 사용되는 Visual Basic for Applications(약칭 VBA)의 기반이 되는 버전이기도 하다.

아직도 사용자가 많은 이유는 VB 6.0 다음 버전이 VB.NET이기 때문이다. 일단 호환도 안 될 뿐더러 VB 6.0은 제한적인 객체 지향[2] 언어이지만, VB.NET은 완전한 객체 지향 언어이기 때문에 아예 코딩하는 방식을 바꿔야 한다. 그래서 아직 VB 6.0을 고수하고 있는 사용자도 있다.

MS는 VB 6.0을 쓰지 말고 VB.NET을 써 달라고 부탁했지만 현실적으로 힘들다. 이미 VB의 압도적인 장점인 쉬운 GUI 구축과 VB 6.0의 장점인 가벼움이라는 무기로 수많은 프로그램들은 이걸로 만들어졌기 때문에 유지 보수에 VB.NET의 사용 가치가 없었다. 그마저도 VB 6.0 당시는 영문버전으로 하면 .exe 파일만으로도 구동되나,[3] .NET 프레임워크가 하루가 다르게 신버전이 나와, 프로그램 배포 무게가 점점 무거워졌다.

결과적으로 몇 천 줄 몇 만 줄 되는 코드를 함수, 변수 수정 같은 방식도 아니라 코딩 패러다임에 맞게 모두 갈아 엎기보다는 그냥 옛날 버전으로 프로그래밍 하는 게 낫다. Visual C++ 6.0도 비슷한 신세를 겪었지만 그래도 이쪽은 최신 버전의 비주얼 C++를 통해 컴파일을 시도라도 해볼 수 있었던 반면에, 상용 수준으로 개발된 VB 6.0 프로젝트를 닷넷으로 변환할 때에는 그야말로 건질 수 있는 게 없다시피 하므로 그냥 포기하고 새로 개발하는 편이 나을 정도. 그럼 그냥 새로 개발하면 되지 않느냐 하겠지만 "그랬다가 되던 기능 안 되면 니가 책임질래?" 또는 "저런 작업에 사용할 인력이나 예산 따윈 없음" 한마디면 회의실에는 적막만 감돈다. 정말 짜증난다면 개인 시간을 사용해서라도 다른 기술을 쓰되 동일한 기능을 가진 모듈을 개발해봐도 좋겠지만, 그런 노력에 환호하던 사람들도 기능이나 호환성 문제 발생시 본인에게 다 전가하려 할 것이다(...). 결국 그냥 예전에 되던 걸 그대로 다시 쓰는 게 모두가 원하는 일이니 오늘도 누군가는 윈도우 10에 VB 6.0을 설치할 수밖에 없는 것이다. 웬만한 검색엔진에 Visual Basic 6이나 Visual Studio 6까지만 쳐도 Windows 10/11에서 설치하는 방법이 자동 완성(...)으로 뜨는 것은 이런 이유.

이 때문에 매년 VB 6.0을 지원해 달라고 프로그래머들은 MS에 진정서를 넣지만, MS는 여전히 VB.NET을 쓰라고 한다. 점점 OS 차원에서도 VB의 지원을 줄이고 있지만 그럼에도 불구하면서 아래와 같은 편법을 써서 계속 사용하는 사람들이 있다. 쓰레드는 Windows API로 쓰면 가능하며, 파일 삭제, 등의 입출력도 Windows API로 쓰면 한 방에 해결된다. MS는 이미 C와 같은 점유율도 높은 언어조차 제대로 지원하지 않고 있기에, 정식 지원에 대한 전망은 비관적이다. VB로 만들어진 프로그램이나 모듈을 사용할 때 나타날 수 있는 보안 취약점 정도나 겨우 수정되는 수준이고 이마저도 언제 중단될지 모르지만, 아마 취약점 해결마저 중단된다 해도 인터넷 연결을 하지 않는 장비 등에서 끈질기게 명맥을 유지할 것이다. 앞서 설명한 대로 그것밖에 답이 없으니까.

백신이 컴파일 된 실행파일을 바이러스로 인식하는 경우도 있다. 대표적인 예로 알약이 있는데, 모처럼 수백/수천대에 배포했던 프로그램을 바이러스라며 한방에 다 삭제 시켜버리기도 했다. 뒤늦게 알약에 항의하면 바이러스항목에서 빼주나, 프로그램을 업데이트하면 다른 프로그램으로 인식해 다시 바이러스로 등록하는 웃지 못할 영업방해도 많았다. 알약을 안 쓰면 된다.

VB 6.0에서는 VC++ 6.0과 다르게 마우스 휠이 제대로 동작하지 않는 버그가 있다. #1 #2 IntelliPoint 소프트웨어가 버전 4.9 이상에서는 동작하지 않으므로 IntelliPoint 소프트웨어 버전 4.12 이전 드라이버를 사용하는 방법도 있다. 아니면 추가 기능으로 패치하는 방법이 있다.

VB 6.0 에서 작성된 응용 프로그램이 Windows 11에서도 제대로 실행된다고 한다. #실행화면 확인

3. VB 지원 종료 이후

Visual Studio .NET(2002)부터 VB는 사라지고 VB.NET(Visual Basic .NET)으로 대체되었다.

4. 허술했던 라이선스 관리

Visual Studio 6.0에 이르기까지 윈도우와 다르게 설치 시리얼키가 허술하게 관리되었다. 모든 시리얼키 입력창을 1로만 입력해도 통과되는 웃지 못할 일도 있었다. 때문에 정식 라이선스를 보유하고 있는 학원이나 업체조차 귀찮아서 111-1111111로 입력하는 경우도 있었다. 당시 구매가 백만 원이 넘어가는 프로그램에서 이를 보완하기 위한 서비스팩 1부터 서비스팩 7에 이르렀을 때까지 차단하거나 고쳐지지 않은 것을 보면 윈도우용 프로그램이 많이 생산되길 바랐거나 라이선스 관리 자체에 관심이 없었던 것으로 보인다. 일단 플랫폼을 장악하는 게 중요하거든. 참고로 이는 Windows 95Microsoft Plus!Windows NT 4.0에서도 먹히는 수법이다.

5. 제작된 게임

비주얼 베이직으로 제작되어 지뢰찾기처럼 윈도우의 인터페이스를 따르는 게임을 나열한다. 시대가 시대인지라 고전게임으로도 분류된다.

6. 이스터 에그


도구 모음 사용자 정의에서 도움말 메뉴에 있는 'Microsoft Visual Basic 정보(&A)...'의 이름을 'Show VB Credits\'로 변경하면 배경음악과 함께 개발자의 이름이 스크롤된다.
[1] 표준 모드나 386 확장 모드에서만 실행된다.[2] 클래스 모듈이라는 객체와 유사한 기능이 있긴 하나, 상속 등의 기능이 제대로 지원되지 않고, 생성자에게 인자를 넘길 수 없다. 그래도 의외로 인터페이스를 통한 다형성 같은건 지원한다.[3] 이는 비주얼 베이직 실행 라이브러리인 msvbvm60.dll이 Windows에 내장되어 있기 때문이다. 영문 이외의 버전에서는 vb6XX.dll(한글은 vb6ko.dll) 파일을 시스템 폴더에 복사해줘야만 실행된다.