マクロの自動記録で雛型作って適当に改造というお手軽さ。~
一般企業の業務システムなんて殆ど何でも作れちゃうし!~
でもトラブルの元になることもあったりする。~

#contents
*はじめに [#ue758f7e]
VBAはMicrosoft Officeに搭載されている統合開発環境Visual Basic Editor(VBE)上で開発する。~
コードはMicrosoft Excel 2003と2007で動かしているが2003以前でも2007以降でもたぶん動く。~
*HelloWorld [#e42bc4f1]
-下準備としてまずはセキュリティレベルを下げる
--2003~
ツール→マクロ→セキュリティ→中もしくは低をクリック
--2007(2010も2013も同じ)~
多少面倒くさい。今後のために開発タブを表示させその後設定を変更する。~
左上のMicrosoft Officeボタン→Excelのオプション→基本設定→Excelの使用に関する基本オプション→~
開発タブをリボンに表示する→マクロの設定→
警告を表示しすべてのマクロを無効にする又はすべてのマクロを有効にするをクリック
-VBEの起動・プログラムの実行
--2003~
ツール→マクロ→Visual Basic Editor
--2007~
開発タブ→Visual Basic~
あとは以下をコピペして実行→Sub/ユーザーフォームの実行→HelloWorldを選択して実行
 Sub HelloWorld()
 'これはコメント、アポストロフィーのあとに入力する
 'メモみたいなもん
 '実行結果はA1セルにHelloWorldと表示される
 Range("A1").Value = "HelloWorld"
 End Sub
-解説~
Sub HelloWorld()からEnd Subまでがプログラムを構成する最小単位であるプロシージャである。~
Sub HelloWorld()はプロシージャ名となる。HelloWorldの部分を書き換えれば好きな名前に出来る。~
次に何を(オブジェクト)どうするのか(プロパティ)を指定しなければならない。~
Range("A1").Value はRange(セル)にValue(値の代入)をするという意味である。~
Valueは他にもセル内の値を参照するときにも使う。= は値を代入するときに使う記号である。~
""内に代入したい値を入力する。ただし数値であれば""は不要である。= 1 + 2 のようにすれば計算結果を代入できる。~
""を使うと(= "1 + 2")計算結果ではなく1 + 2という文字列が代入される。
-プロシージャ名のルール
*変数の利用 [#kfb3527e]
-変数とは~
利用したいデータ(文字列や数値)を一時的に取り置くための箱のようなもの
パソコンのメモリに一定のスペースを確保しそこにデータを記憶させる。~
-変数を利用したプログラム
 Sub 変数()
 'あらかじめA1セルとB1セルに入力されている整数を掛けて計算結果をC1セルに表示する
 Dim i As Integer
 Dim j As Integer
 i = Range("A1").Value
 j = Range("B1").Value
 Range("C1").Value = i * j
 End Sub
-解説~
まずは変数名と変数で何のデータを扱うのか(変数の型)を定める。これを変数の宣言という。~
VBAの場合はDim 変数名 As 変数の型となる。Integerは-32768から32767までの整数を扱うための型である。
 Dim i As Integer
 Dim j As Integer
次に用意した変数に値を代入する。今回はセルを参照してそこに入力されている値を代入する。
 i = Range("A1").Value
 j = Range("B1").Value
C1セルに計算結果を代入する。
 Range("C1").Value = i * j
--VBAの特殊仕様~
-VBAの特殊仕様~
これは他言語ではよく見る仕様であるが…
 int i,j,k; 
VBAではこのようにするとk以外は勝手にVariantになってしまう。
 Dim i, j, k As Integer
正しくは
 Dim i As Integer, j As Integer, k As Integer
他にもVBA(VB)は独特の仕様があるから気を付けよう。
-変数名のルール
-変数の型一覧
|型|扱えるデータ|メモ|
|Integer|||
|long|||
|Songle|||
|Double|||
|String|||
|Byte|||
|Boolean|||
|Currency|||
|Date|||
|Object|||
|Variant|||
*計算 [#w57ac774]
*セルの操作 [#h7f52bd5]
-絶対参照
-相対参照
-カット・コピー・ペースト
*条件分岐 [#rfb39303]
*繰り返し [#t1f7555b]
*配列 [#z2f105a1]
*ユーザー定義型の変数 [#w1e77530]
*ユーザーフォーム [#u3c9f8de]
*ワークシートとブックの操作 [#w17595bb]
*変数の適用範囲 [#e2d2f20e]
*関数の活用 [#od08c566]
*ユーザー定義関数 [#qa414172]
*グラフ [#s128df53]
*ピボットテーブル [#h539fec6]
*デバッグ [#jc8d8c64]
*エラー処理 [#yfeaf1e4]
*Win32APIの呼び出し [#q53b9111]
*参考 [#y7791cc5]


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS