<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wikippe.e-do-match.com/index.php?action=history&amp;feed=atom&amp;title=Visual_Basic_for_Applications</id>
	<title>Visual Basic for Applications - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://wikippe.e-do-match.com/index.php?action=history&amp;feed=atom&amp;title=Visual_Basic_for_Applications"/>
	<link rel="alternate" type="text/html" href="https://wikippe.e-do-match.com/index.php?title=Visual_Basic_for_Applications&amp;action=history"/>
	<updated>2026-08-27T11:40:56Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wikippe.e-do-match.com/index.php?title=Visual_Basic_for_Applications&amp;diff=62590&amp;oldid=prev</id>
		<title>2014年8月9日 (土) 03:39に14.3.236.69による</title>
		<link rel="alternate" type="text/html" href="https://wikippe.e-do-match.com/index.php?title=Visual_Basic_for_Applications&amp;diff=62590&amp;oldid=prev"/>
		<updated>2014-08-09T03:39:07Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox programming language&lt;br /&gt;
| name                   = Visual Basic for Applications (VBA)&lt;br /&gt;
| logo                   = &lt;br /&gt;
| paradigm               = &lt;br /&gt;
| year                   = 1993&lt;br /&gt;
| designer               = マイクロソフト&lt;br /&gt;
| developer              = [[マイクロソフト]]&lt;br /&gt;
| latest_release_version = 7.0 (Office 2010)&lt;br /&gt;
| latest_release_date    = &lt;br /&gt;
| latest_test_version    = &lt;br /&gt;
| latest_test_date       = &lt;br /&gt;
| typing                 = [[型システム]]&lt;br /&gt;
| implementations        = &lt;br /&gt;
| dialects               = &lt;br /&gt;
| influenced_by          = [[QuickBASIC]]&amp;lt;br/&amp;gt;[[Microsoft Visual Basic]]&lt;br /&gt;
| influenced             = &lt;br /&gt;
| operating_system       = [[Microsoft Windows]]&amp;lt;br/&amp;gt;[[OS X|Mac OS X]]&lt;br /&gt;
| license                = [[Proprietary software|Proprietary]] [[EULA]]&lt;br /&gt;
}}&lt;br /&gt;
{{プログラミング言語}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Visual Basic for Applications&amp;#039;&amp;#039;&amp;#039;（ビジュアルベーシック・フォー・アプリケーションズ、VBA）は、[[マイクロソフト]]社製の[[Microsoft Office]]シリーズに搭載されている[[プログラミング言語]]である。&lt;br /&gt;
&lt;br /&gt;
== 概要 ==&lt;br /&gt;
VBA を使用することで、[[Microsoft Excel|Excel]]や[[Microsoft Access|Access]]、[[Microsoft Word|Word]]などを使用した定型業務を自動化することができる。VBAを用いてユーザーが関数を作成することもできる（ユーザー定義関数という）。また、ユーザー独自の[[フォーム]]を作成することができ、様々な[[プラグイン]]を組み込むことでアプリケーションの機能をカスタマイズすることなども可能である。&lt;br /&gt;
&lt;br /&gt;
[[Microsoft Office]]シリーズのアプリケーションにはVBA用の[[統合開発環境]]が付属しているため、知識があれば誰でも手軽にプログラミングが始められる（知識がない場合でも、マクロの自動記録の機能を使って定型業務の自動化を行うことができる）。基本的には[[インタプリタ]]型の言語であるため、[[コンパイル]]（ビルド）の作業は不要である。&lt;br /&gt;
&lt;br /&gt;
Microsoft Office専用という印象が強いが、実際にはマイクロソフト社からしかるべき[[ライセンス]]を取得することで他の[[アプリケーションソフトウェア|アプリケーション]]に組み込むことも可能である。実際、マイクロソフト社に買収される前の[[Microsoft Visio|Visio]]にも搭載されていた。[[CAD]]ソフトの[[AutoCAD]]や[[MicroStation|MicroStation V8]]等にも搭載されている。&lt;br /&gt;
&lt;br /&gt;
==VBA の歴史==&lt;br /&gt;
[[1994年]]、マイクロソフトは Excel 5.0 とともに VBA をリリースした。それは従来までの[[マクロ言語]]の代替でしかなかった。&lt;br /&gt;
&lt;br /&gt;
しかし、翌年にリリースした Office95や、[[1997年]]のOffice97において、Excel以外のアプリケーション、すなわちAccessや[[Microsoft Word|Word]]にもVBAを搭載していった。合わせてVBAの仕様拡張も行われ、VBAはOffice製品に共通したプログラミング言語として確立される。&lt;br /&gt;
&lt;br /&gt;
== 近年の動向 ==&lt;br /&gt;
VBAは、同社の[[Microsoft Visual Basic|Visual Basic]]から派生した言語であり、Visual Basicと同様、[[ActiveX]]を使用することで既存資源の流用も可能である。ただ、近年マイクロソフト社はActiveX/[[Component Object Model]]から[[.NET Framework]]への転換を進めており、Microsoft Office System 2003には従来版にあった「Developer Edition」（VBAカスタムアプリケーション開発用のパッケージ）が存在せず、替わりにVisual Studio Tools for the Microsoft Office Systemと呼ばれる製品が出荷されている。&lt;br /&gt;
&lt;br /&gt;
==コード例==&lt;br /&gt;
以下は、Excelにおいて、「Alpha」という名前のワークシートを削除するVBAの例である。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
Application.DisplayAlerts = False&lt;br /&gt;
Worksheets(&amp;quot;Alpha&amp;quot;).Delete&lt;br /&gt;
Application.DisplayAlerts = True&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
また、Excelで以下のコードを実行すると、セルA1からI9の範囲に掛け算九九の表を作成することができる。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
Dim i As Integer&lt;br /&gt;
Dim j As Integer&lt;br /&gt;
&lt;br /&gt;
For i = 1 To 9&lt;br /&gt;
    For j = 1 To 9&lt;br /&gt;
        Cells(i, j).Value = i * j&lt;br /&gt;
    Next&lt;br /&gt;
Next&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
下記のように配列を用いて、全ての値を配列に格納した上で一度に出力するように上記のコードを書き換えると、高速に動作するコードになる。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
Dim i As Integer&lt;br /&gt;
Dim j As Integer&lt;br /&gt;
Dim KukuArray(8, 8) As Integer&lt;br /&gt;
&lt;br /&gt;
For i = 1 To 9&lt;br /&gt;
    For j = 1 To 9&lt;br /&gt;
        KukuArray(i - 1, j - 1) = i * j&lt;br /&gt;
    Next&lt;br /&gt;
Next&lt;br /&gt;
&lt;br /&gt;
Range(&amp;quot;A1:I9&amp;quot;).Value = KukuArray&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
条件によって4色以上に色を塗り分けるときも、VBAを利用する（3色以下のときは一般機能の「条件付き書式」を使用するのが望ましい）。以下のコードを実行するとセルB2からE15までの範囲内のセルを5以下→水色、6以上10以下→明るい緑、11以上15以下→黄色、16以上→赤と塗り分けることができる。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
Dim myCell As Range&lt;br /&gt;
&lt;br /&gt;
For Each myCell In Range(&amp;quot;B2:E15&amp;quot;)&lt;br /&gt;
    Select Case myCell.Value&lt;br /&gt;
    Case Is &amp;lt;= 5&lt;br /&gt;
        myCell.Interior.Color = RGB(0, 255, 255)&lt;br /&gt;
    Case 6 To 10&lt;br /&gt;
        myCell.Interior.Color = RGB(0, 255, 0)&lt;br /&gt;
    Case 11 To 15&lt;br /&gt;
        myCell.Interior.Color = RGB(255, 255, 0)&lt;br /&gt;
    Case Is &amp;gt; 15&lt;br /&gt;
        myCell.Interior.Color = RGB(255, 0, 0)&lt;br /&gt;
    End Select&lt;br /&gt;
Next&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
以下は、VBAと共にExcel毎プログラムを終了するVBAの例である。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
Application.Quit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ユーザー定義関数===&lt;br /&gt;
VBAを用いて、ユーザーが新たに関数を作成することもできる。ユーザー定義関数を作成するにはFunctionプロシージャを用いる。以下はHERONという名で[[ヘロンの公式]]を用いるユーザー定義関数のコードである。実用には、負の値や三角条件を満たさない値が入力されることを想定して、下記のコードにエラー処理ルーチンを追加しておくことが望ましい。&lt;br /&gt;
&lt;br /&gt;
定義したユーザー定義関数は通常のワークシート関数同様、数式の中で用いることで呼び出す。この例で言えば、{{nowrap|1==HERON(3,4,5)}}とセルに入力すると、数式を入力したセルに演算結果として6と出力される。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
Function HERON(辺1 As Double, 辺2 As Double, 辺3 As Double) As Variant&lt;br /&gt;
&lt;br /&gt;
    Dim s As Double&lt;br /&gt;
    &lt;br /&gt;
    s = (辺1 + 辺2 + 辺3) / 2&lt;br /&gt;
    HERON = Sqr(s * (s - 辺1) * (s - 辺2) * (s - 辺3))&lt;br /&gt;
&lt;br /&gt;
End Function&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==VBAの問題==&lt;br /&gt;
VBA で記述したプログラムは Excel などのファイルの一部として格納される。そのため、これらのファイルを開くと同時に VBA で記述した悪意のあるプログラム（[[マクロウイルス]]）が自動実行されるようになっていると、重要なファイルが削除されるなど、クライアントが大きなダメージを受けることがある。この危険性は、各アプリケーション上でのセキュリティ設定や、[[ウイルス対策ソフト]]の導入などによってほぼ回避することができる。&lt;br /&gt;
&lt;br /&gt;
==外部リンク==&lt;br /&gt;
*[http://www.imt.net/~joe/matt/program/vb/Tutorials/ Visual Basic Tutorials]&lt;br /&gt;
*[http://www.microsoft.com/japan/msdn/vba/default.htm Visual Basic for Applications （マイクロソフト社公式ページ）]&lt;br /&gt;
&lt;br /&gt;
{{Microsoft Office}}&lt;br /&gt;
{{BASIC}}&lt;br /&gt;
&lt;br /&gt;
[[Category:BASIC]]&lt;br /&gt;
[[Category:マイクロソフトのプログラミング言語|Visual Basic for Applications]]&lt;br /&gt;
[[Category:Microsoft Office|Visual Basic for Applications]]&lt;/div&gt;</summary>
		<author><name>14.3.236.69</name></author>
	</entry>
</feed>