Visual Basic for Applicationsとは? わかりやすく解説

VBA

フルスペル:Visual Basic for Applications
読み方ブイビーエー
別名:ビジュアルベーシック・フォー・アプリケーション

VBAとは、Microsoftアプリケーション独自のマクロ言語用に作られプログラミング言語のことである。

VBAはMicrosoftVisual Basicベースとしており、WordExcelはじめとするMicrosoft Officeアプリケーション群に搭載されている。

VBAを利用することで、特にWordExcelAccessなどを用い定型業務をほぼ自動化することができる。例えば、VBAを起動するように設定したフォームボタン1つ押すだけで、手作業何時間もかかっていた処理の大半自動処理させることが可能となる。

なお、ある程度自動化マクロで組むこともできるが、変数用いた処理や繰り返し理などの複雑な処理は、VBAによって初め実現可能となる。

他方、VBAは、WordExcelなどのファイル一部として保存されるため、これらのファイルを開くと同時に悪意あるプログラム自動的に実行されるというようなウィルスプログラムを作成するともできるこうしたVBAのウィルス回避するためには、不用意にファイル開かないことや、各アプリケーションマクロセキュリティ設定変更すること、ウィルス対策ソフト利用すること、などの対策を行う必要がある

プログラミングのほかの用語一覧
プログラミング言語の種類:  STL  Swift  手続き型言語  VBA  Visual Basic  Visual C++  Visual Studio

Visual Basic for Applications

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/07/13 04:51 UTC 版)

Visual Basic for Applications (VBA)
登場時期 1993
設計者 マイクロソフト
開発者 マイクロソフト
最新リリース 7.1 (Office 2021)
型付け 型システム
影響を受けた言語 QuickBASIC, Microsoft Visual Basic
プラットフォーム Microsoft Windows, macOS
ライセンス プロプライエタリ EULA
テンプレートを表示

Visual Basic for Applications(ビジュアルベーシック・フォー・アプリケーションズ、VBA)は、主にマイクロソフト製のMicrosoft Officeシリーズに搭載されているプログラミング言語である。

概要

マイクロソフトが1990年代に開発していた汎用プログラミング言語・Microsoft Visual Basicを、同社製品のMicrosoft Officeに搭載したものがVBAである。VBAを使用することで、ExcelAccessWordOutlookPowerPointなど、Officeのアプリケーション・ソフトウェアの機能をカスタマイズしたり、拡張したりすることができる。

Microsoft OfficeシリーズにはVBAのソースコード作成・編集ソフトウェアおよびプログラム実行環境が最初から付属しているため、使用を始めるにあたり、Office以外の特別なソフトウェアの用意やセッティングを必要としない。文献やネット情報も多く、最低限の学習で誰でも手軽にプログラミングを始められる。また、プログラムの実行が容易なことも特徴である。C言語などではソースコードを書き上げてからコンピュータに実行させる前に機械語に変換して実行プログラム形式として出力するためのコンパイルおよびリンク(ビルド)作業が必要だが、VBAは疑似コード (Pコード) ベースのコンパイラ型およびインタプリタ型両方の性質を持っており[1]、ユーザーが記述したソースコードを1アクションで自動的に疑似コードにコンパイルして直接コンピュータに実行させることができる。手軽に利用できる一方で、汎用プログラミング言語に共通の機能は一通り備えており、高度な機能まで修得しようとすると相応の学習が必要である。

機能・用途

  • 定型業務の自動化、省力化。例えば、毎日更新されるデータを出社してからいちいち手入力し、手順を入力して計算させていた業務を、夜の間に自動でソフトウェアを起動し、データを読み込ませ、朝までに処理させておける。またOfficeアプリケーションではマクロ記録/再生という操作手順の記録/再生機能を使って、プログラムに関する知識が少ないユーザーでも、ある程度の定型業務の自動化を行なえる。マクロはVBAコードの自動生成により実現されている。
  • 特定の使用目的への最適化。例えばある会社で、社員の一覧名簿を作成し、自社独自の給与体系に従い、各自の給与を自動で計算できる。またその場合、考慮する数字を自動で参照して集計するなど、目的に応じた特殊な関数を作成することもできる(ユーザー定義関数という)。また、ユーザー独自のフォームを作成でき、様々なプラグインを組み込むことなども可能である。
  • Officeの使用に特化しMicrosoft Office専用という印象が強いが、限定的ながらInternet ExplorerなどOffice以外のソフトウェアを制御する機能が与えられているほか、フォルダを作成する、ファイル名を変更するといったOS上の操作も行うことができる。またマイクロソフト社からしかるべきライセンスを取得することで他のアプリケーションに組み込むことも可能である。実際、マイクロソフト社に買収される前のVisioにも搭載されていた。CADソフトのAutoCADMicroStation V8等にも搭載されている。

VBAの歴史

  • VBA は 1993年 (日本では1994年) に MS Excel 5.0 で初めて発売された。それは瞬く間に開発者の間で、Excel を使用して企業ソリューションを作成するツールとして成功を収めた。AccessBASIC とWordBASIC を置き換え、Microsoft Project、Access と Word に VBA が搭載されたことで、VBA はより一般的になった。
  • VBA 4.0は、以前のものと比較して完全にアップグレードされたメジャーリリースとなった。1996年にリリースされ、C++で書かれ、オブジェクト指向言語となった。
  • VBA 5.0 は、1997年に MS Office 97 に含まれるすべての製品と共に発売された。ただし、VBScript を実装した Outlook 97 は例外。
  • VBA 6.0 および VBA 6.1 は 1999年に発売され、特に Office 2000 の COM アドインをサポートした。 VBA 6.2 は Office 2000 SR-1 と共にリリースされた。
  • VBA 6.3 は Office XP と一緒にリリースされ、VBA 6.4 では Office 2003、VBA 6.5 は Office 2007 でリリースされた。
  • Office 2010 には VBA 7.0 が搭載された。VBA 7 には、64 ビットサポート以外に、VBA 6.5 と比べて開発者向けの新機能はない。ただし、VBA 6.5/Office 2007 以降、マイクロソフトは他のアプリケーション向けの VBA のライセンスを停止した。
  • Office 2013、Office 2016、Office 2019、及び Office 2021には VBA 7.1 が搭載されている。

近年の動向

2007 年 7 月 1 日以降、マイクロソフトは新規顧客への VBA 再配布ライセンス提供を停止した。マイクロソフトは、.NET Framework のリリース以降、ずっと VBA に .NET ベースの言語を追加しようとしてきた。[2].NET Frameworkバージョン1.0 および 1.1 には Script for the .NET Framework というスクリプト ランタイム テクノロジが搭載されていた。[3]また、Visual Studio .NET 2002 および 2003 SDK には、VB.NETをサポートする Visual Studio for Applications (VSA)という別のスクリプト IDEが含まれていた。[4][5][6] VSAの重要な特徴の一つは、Active Scripting (VBScript および JScript)を通して利用が可能であり、.NETが使えないアプリケーションを.NET 言語を使用してスクリプト化することができたことだった。しかし、VSA は、Active Scriptingのサポートを望むアプリケーションの明確なアップグレード パスがないまま.NET Framework のバージョン 2.0 でサポート対象外となった[6]。 (C#VBScript、他の.NET言語で「スクリプト」の作成は引き続き可能で、ランタイムの一部としてインストールされたライブラリを介して実行時にコンパイルおよび実行することはできる。)

マイクロソフトは、Microsoft Office 2008 for Mac でVBA サポートを一度廃止した。[7][8]しかしMicrosoft Office for Mac 2011 でVBA は復活することとなった。マイクロソフトは、Windows バージョンの Office から VBA を削除する計画はないと述べている。[9][10]

Office 2010 では、マイクロソフトは真のポインター データ型 LongPtr をサポートする VBA7 を導入した。これにより、64 ビットのアドレス空間を参照できるようになった。Office 2010 の 64 ビット インストールでは、MSComCtl (TabStrip, Toolbar, StatusBar, ProgressBar, TreeView, ListViews, ImageList, Slider, ImageComboBox) および MSComCt2 (Animation, UpDown, MonthView, DateTimePicker, FlatScrollBar)といったコモンコントロールに依存するレガシーな32ビットコードは64ビットVBAコードに移植しても機能しない。これは、32 ビット バージョンの Office 2010 では発生しない。[11] VBA7 には 64 ビットバージョンのコモンコントロールが含まれていないため、開発者は VBA アプリケーションを 64 ビットに移行する手段がないことになる。マイクロソフトでは、64 ビット バージョンの VBA コントロールについてソフトウェア ベンダに問い合わせるように誘導している。

資格検定試験

いずれも、パソコンスクール運営の株式会社オデッセイ コミュニケーションズが実施する民間資格である。全国のパソコン教室などを会場に随時予約可能。受験料は1万数千円程度。

※また、日本の国家試験である基本情報技術者試験表計算ソフトの問題にも、VBA風の擬似言語を用いたマクロ定義の内容が出題されている。

コード例

以下は、Excelにおいて、「Alpha」という名前のワークシートを削除するVBAの例である。

Application.DisplayAlerts = False
Worksheets("Alpha").Delete
Application.DisplayAlerts = True

また、Excelで以下のコードを実行すると、セルA1からI9の範囲に掛け算九九の表を作成することができる。

For i = 1 To 9
    For j = 1 To 9
        Cells(i, j).Value = i * j
    Next
Next

下記のように配列を用いて、全ての値を配列に格納した上で一度に出力するように上記のコードを書き換えると、高速に動作するコードになる。

Dim KukuArray(8, 8) As Integer

For i = 1 To 9
    For j = 1 To 9
        KukuArray(i - 1, j - 1) = i * j
    Next
Next

Range("A1:I9").Value = KukuArray

条件によって4色以上に色を塗り分けるときも、VBAを利用する(3色以下のときは一般機能の「条件付き書式」を使用するのが望ましい)。以下のコードを実行するとセルB2からE15までの範囲内のセルを5以下→水色、6以上10以下→明るい緑、11以上15以下→黄色、16以上→赤と塗り分けることができる。

Dim myCell As Range

For Each myCell In Range("B2:E15")
    Select Case myCell.Value
    Case Is <= 5
        myCell.Interior.Color = RGB(0, 255, 255)
    Case 6 To 10
        myCell.Interior.Color = RGB(0, 255, 0)
    Case 11 To 15
        myCell.Interior.Color = RGB(255, 255, 0)
    Case Is > 15
        myCell.Interior.Color = RGB(255, 0, 0)
    End Select
Next

以下は、VBAと共にExcelごとプログラムを終了するVBAの例である。

Application.Quit

ユーザー定義関数

VBAを用いて、ユーザーが新たに関数を作成することもできる。ユーザー定義関数を作成するにはFunctionプロシージャを用いる。以下はHERONという名でヘロンの公式を用いるユーザー定義関数のコードである。実用には、負の値や三角条件を満たさない値が入力されることを想定して、下記のコードにエラー処理ルーチンを追加しておくことが望ましい。

定義したユーザー定義関数は通常の(組み込みの)ワークシート関数同様、数式の中で用いることで呼び出す。この例で言えば、=HERON(3,4,5)とセルに入力すると、数式を入力したセルに演算結果として6と出力される。

Function HERON(1, 2, 3) As Variant
    
    s = (1 + 2 + 3) / 2
    HERON = Sqr(s * (s - 1) * (s - 2) * (s - 3))

End Function

VBAのセキュリティ問題

他の一般的なプログラミング言語と同様に、VBA では悪意のあるマクロウイルスを作成できてしまう。VBA では、セキュリティ機能のほとんどは作成者ではなくユーザーの手に委ねられる。VBA のホストアプリケーションでは、ユーザーはオプションを事前に設定でき、マクロをアプリケーションで実行できないようにしたり、ドキュメントのソースが信頼できる場合にのみ VBA コードを実行するアクセス許可を付与したりして、攻撃から身を守ることができる。

Office 2000 SP3以降はセキュリティが強化され、初期設定ではVBAマクロは無効化されている[12]。そのため、マクロを含むファイルを開いただけでプログラムが実行されることはないが、設定次第でセキュリティレベルを下げることもできてしまう[13]。また、Office 2007 以降に一般的となった新しいファイル形式 (.xlsx など) ではマクロを含むことができないので、安全性がより高まった。

関連項目

脚注

  1. ^ ACC2000: Visual Basic for Applications Is Both a Compiler and an Interpreter / Internet Archive
  2. ^ Visual Studio for Applications”. 2007年12月17日時点のオリジナルよりアーカイブ。2007年12月17日閲覧。
  3. ^ Introducing Visual Studio for Applications”. msdn.microsoft.com. 2007年12月17日閲覧。
  4. ^ Script Happens .NET”. msdn.microsoft.com. 2007年12月17日閲覧。
  5. ^ Microsoft Takes Wraps Off VSA Development Technology”. 2007年12月17日時点のオリジナルよりアーカイブ。2007年12月17日閲覧。
  6. ^ a b VSA scripting in .NET”. 2007年2月11日時点のオリジナルよりアーカイブ。2007年12月17日閲覧。
  7. ^ WWDC: Microsoft updates Universal status of Mac apps”. Macworld (2006年8月7日). 2007年5月25日閲覧。
  8. ^ What is Microsoft Office and Office 365 – FAQs”. 2017年12月17日閲覧。
  9. ^ The Reports of VBA’s Demise Have Been Greatly Exaggerated”. 2008年12月17日閲覧。
  10. ^ Clarification on VBA Support”. 2008年12月17日閲覧。
  11. ^ Compatibility Between the 32-bit and 64-bit Versions of Office 2010”. msdn.microsoft.com. 2010年12月17日閲覧。
  12. ^ Excelの「マクロのセキュリティ」とは? | 日経 xTECH(クロステック)
  13. ^ Excel のマクロのセキュリティ設定を変更する - Excel

外部リンク


Visual Basic for Applications (VBA)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/28 10:14 UTC 版)

Visual Basic」の記事における「Visual Basic for Applications (VBA)」の解説

詳細は「Visual Basic for Applications」を参照 Microsoft Officeアプリケーション用のマクロ環境として実装されているVisual Basic反復操作自動化するだけでなく、Windowsフォームボタンなどのコントロールドキュメント内に配置してドキュメント編集のためのGUI構築することも可能となっている。言語仕様としては、本家Visual Basic.NET以降リリースされたのちも、ドキュメント互換性を保つ目的で、Visual Basic 6.0ベースのものが実装されている。ExcelAccessWordなどのアプリケーション実装されているほか、独自に開発したアプリケーションVBA搭載することも可能で、サードパーティ製のアプリケーションVBA搭載され場合もある。本家Visual Basicとの大きな違いは、搭載アプリケーション内でしか実行できない点にある。 VBA用いることで、対応するアプリケーション内の各要素クラスオブジェクトとして操作できるExcelを例にとると、「Excelアプリケーション」を表すApplicationオブジェクト、「Excelブック」を表すWorkbookオブジェクト、「スプレッドシート中のセルまたはセル範囲」を表すRangeオブジェクトなどがVBAから操作できるOffice 2007まではバージョン6系列Visual Basic採用されていたが、Office 2010では、バージョン番号7.0としている。主な変更点として、64ビット環境への対応が挙げられる。LongPtr(32ビット環境64ビット環境双方ポインタと同じ大きさとなる整数型)、LongLong(64ビット整数型、ただし64ビット環境でのみ使用可能)などのデータ型やそれに伴う変換関数追加などが行なわれている。

※この「Visual Basic for Applications (VBA)」の解説は、「Visual Basic」の解説の一部です。
「Visual Basic for Applications (VBA)」を含む「Visual Basic」の記事については、「Visual Basic」の概要を参照ください。

ウィキペディア小見出し辞書の「Visual Basic for Applications」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ

「Visual Basic for Applications」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

Visual Basic for Applicationsのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Visual Basic for Applicationsのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2025 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【VBA】の記事を利用しております。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのVisual Basic for Applications (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのVisual Basic (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS