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

#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という文字列が代入される。
また= "1" + "2"のようにすると12という文字列が代入される。
-プロシージャ名のルール
*変数の利用 [#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の特殊仕様''~
これは他言語ではよく見られる仕様であるが…
 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(整数)、Double(小数)、String(文字)の3種類だけ覚えておいてください。~
他の型は適宜説明します。といってもDateとObjectぐらいだとは思いますが。
|型|扱えるデータ|メモ|
|Integer|-32768から32767の整数のみ||
|long|-2147483648から2147483647の整数のみ||
|Single|±1.401298E-45から±3.402823E38||
|Double|±4.94065645841247E-324から±1.79769313486232E308||
|String|文字列||
|Byte|0から255の整数|バイナリファイルの読み書きなど。|
|Boolean|真偽|ゲームの当たり判定などで使う。知らない間に内部的な処理で使っていることもある。|
|Currency|-92233703685477.5808から922337203685477.5807|お金を扱うときに使う。|
|Date|日付と時刻||
|Object|Excel上のオブジェクトを扱う。|オートシェイプ、ワークシート、セルなど。|
|Variant|なんでも取り扱える||
*計算 [#w57ac774]
 Sub 計算()
 Dim i As Double
 Dim j As Double
   i = 3
   j = 2
   '加
   Range("D1").Value = i + j
   '減
   Range("E1").Value = i - j
   '乗
   Range("F1").Value = i * j
   '除
   Range("G1").Value = i / j
   '商
   Range("H1").Value = i \ j
   'あまり
   Range("I1").Value = i Mod j
   'べき乗
   Range("J1").Value = i ^ j
   '文字列結合演算子
   Range("k1").Value = i & j
 End Sub
-''解説''~
これらの記号(+,-,*,/,\,Mod,^)は算術演算子と呼ばれるもので各種計算を行うためのものである。~
文字列結合演算子は複数の文字列をひとつにまとめるためのものである。
-''計算と誤差''~
*セルの操作 [#h7f52bd5]
-''相対参照''
--''相対参照とは''~
現在、選択されているセルから相対的に位置を指定する。
式の入ったセルの右下を引っ張ってコピーしたときに参照するセルが変わるアレ。
--''プログラム''
 Sub 相対参照()
 'セルG7を選択する
 Range("G7").Select
 'ActiveCellは現在選択されているセルを参照する。
 'Offsetはセルを移動させる。左の数値は上下の指定、右の数値は左右の指定。
 '下に1つ、右に3つセルを移動させる。移動後のセルはJ8。
 ActiveCell.Offset(1, 3).Select
 End Sub
--''解説''~
現在のセルの位置(ActiveCell)を基準とした相対位置をOffsetメソッドで指定する。
|CENTER:-2,-2|CENTER:-2,-1|CENTER:-2,0|CENTER:-2,1|CENTER:-2,2|
|CENTER:-1,-2|CENTER:-1,-1|CENTER:-1,0|CENTER:-1,1|CENTER:-1,2|
|CENTER:0,-2|CENTER:0,-1|CENTER:基準|CENTER:0,1|CENTER:0,2|
|CENTER:1,-2|CENTER:1,-1|CENTER:1,0|CENTER:1,1|CENTER:1,2|
|CENTER:2,-2|CENTER:2,-1|CENTER:2,0|CENTER:2,1|CENTER:2,2|
-''絶対参照''~
--''絶対参照とは''~
直接、セルを指定する。セルの前に$をつけるとコピーしても参照するセルが変わらないアレ。~
 =$C$1+$D$1
--''プログラム''
---単一のセルを指定
 Sub 絶対参照01()
 Range("A1").Select
 End Sub
---複数の独立したセルを指定
 Sub 絶対参照02()
 Range("B1,B3,B5,B7,B9").Select
 End Sub
---連続したセルを指定
 Sub 絶対参照03()
 Range("C1:D5").Select
 End Sub
---おまけ
 Sub 絶対参照04()
 Range("A1,C1:D5").Select
 End Sub
-''Cellsによる指定''~
行番号と列番号を数字で指定する。列は1がA列、2がB列、3がC列…のようになる。~
行や列を変数で指定して変化させたい場合、Rangeではなくこちらを使う。~
 Cells(行番号,列番号).Select
-''カット・コピー・ペースト''
--''プログラム''
 Sub コピペ()
    '文字列の代入
    Range("A1").Value = "( ^ω^)"
    Range("A2").Value = "\(^o^)/"
    Range("A3").Value = "(´∀`)"
    Range("A4").Value = "キタ━(゚∀゚)━!"
    Range("A5").Value = "vipper"
    
    'コピペ
    Range("A1:A5").Copy   'Copy→Cutにするとカット
    Range("B1").PasteSpecial'コピー先の先頭を指定してペースト
 End Sub
--''解説''~
CopyメソッドとCutメソッドは
 Range("B1,B3,B5,B7,B9").Copy
や~
 Range("A1,C1:D5").Copy
のようなセルの指定はできない。
-''セルの設定''~
フォントや塗りつぶし、文字色などの変更~
--''プログラム''~
 Sub 設定()
    'フォント
    Range("A1:A10").Font.Name = "MS明朝"
    '太字
    Range("B1:B10").Font.Bold = True
    '斜体
    Range("C1:C10").Font.Italic = True
    '下線
    Range("D1:D10").Font.Underline = True
 End Sub
--''解説''~
Nameプロパティによるフォントの指定。""でフォント名を囲む。
 Range("A1:A10").Font.Name = "MS明朝"
Boldプロパティによる太字の設定。Falseは太字の解除を行う。
 Range("B1:B10").Font.Bold = True
Italicプロパティによる斜体の設定。Falseは斜体の解除を行う。
 Range("C1:C10").Font.Italic = True
Underlineプロパティによる下線の設定。Falseは下線の解除を行う。
 Range("D1:D10").Font.Underline = True
--''その他のプロパティ''~
---ColorIndex~
セルを塗りつぶしや文字色の変更。数字で色を指定する。下記は緑。その他の色は[[こちらのサイト:http://www.ne.jp/asahi/mabu-messages/greetings-2-you/colorIndexnum.htm]]を参照
 'セルの塗りつぶし
 Range("A1").Interior.ColorIndex = 10
 '文字色の変更
 Range("A1").Font.ColorIndex = 10
---Color~
セルを塗りつぶしや文字色の変更。RGBで色を指定する。
 'セルを塗りつぶす
 Range("A1").Interior.Color = RGB(255, 255, 255)
 '文字色の変更
 Range("A1").Font.Color = RGB(255, 255, 0)
---Size~
文字サイズの変更。
 Range("A1").Font.Size = 12
*プログラムの記述量を減らす [#c434427f]
With文を使うことによってプログラムの記述量を減らすことができる。次のプログラムをWith文を使い書き換える。
  Sub 設定()
    'セルの指定
    Range("A1:A10").Select
    'フォント
    'Selectionは相対参照の項で使ったActiveCellと同じで現在選択されているセルを参照する。
    'ただし複数セルを選択しているときActiveCellは先頭のセルしか参照しないので注意すること。
    '今回の場合、ActiveCellを使うとA1セルしか以下の設定が反映されない。
    Selection.Font.Name = "MS明朝"
    '太字
    Selection.Font.Bold = True
    '斜体
    Selection.Font.Italic = True
    '下線
    Selection.Font.Underline = True
  End Sub
With文を使うと以下のようになる。With~End With間のすべてのSelectionを省略することができる。
 Sub 設定()
  'セルの指定
  Range("A1:A10").Select
  With Selection
    'フォント
    .Font.Name = "MS明朝"
    '太字
    .Font.Bold = True
    '斜体
    .Font.Italic = True
    '下線
    .Font.Underline = True
  End With
 End Sub
With文の基本形
 With 重複しているメソッドやオブジェクト
 …
 End With

次のように複数のメソッドやオブジェクトを省略することもできる。
  'セルの指定
  Range("A1:A10").Select
  With Selection.Font
        'フォント
        .Name = "MS明朝"
        '太字
        .Bold = True
        '斜体
        .Italic = True
        '下線
        .Underline = True
    End With
 End Sub

このようにIf文(後述)などの他の構文と組み合わせることもできる。
 Sub 文字列の比較1完全一致()
 Dim str As String
 str = Range("A1").Value
    With Range("A2")
     If str Like "a" Then
         'A1セルに半角のaが入力されたとき
         .Value = "一致"
     Else
         'それ以外
         .Value = "一致しない"
     End If
    End With
 End Sub
*条件分岐 [#rfb39303]
条件(セルの中の値や計算の結果など)によって処理を分けたいときにはIf文やCase文を使う。~ 
-''If文''~
--''プログラム''~
 Sub 条件分岐If()
 Dim hundred As Integer
 hundred = Range("A1").Value
     If hundred < 100 Then
         'A1セルに100未満が入力されたとき
         Range("A2").Value = "100未満"
     Else
         'A1セルに100以上が入力されたとき
         Range("A2").Value = "100以上"
     End If
 End Sub
--''解説''~
これはIf文の最も基本的な形である
 If 条件 Then
     '条件が満たされているときの処理
     処理1
 Else
     '条件が満たされていないときの処理
     処理2
 End If
< は比較演算子で~未満を表す。意味は変数hundredが100未満のときである。
 If hundred < 100 Then
-''比較演算子''~
条件を書くために重要な演算子。
|CENTER:演算子|CENTER:記号|CENTER:メモ|
|CENTER:未満|CENTER:1 < 2|2を含まないので2 < 2は成立しない。 |
|CENTER:以下|CENTER:1 <= 2|2を含むので2 <= 2も成立する。|
|CENTER:超過|CENTER:2 > 1|2を含まないので2 > 2は成立しない。|
|CENTER:以上|CENTER:2 >= 1|2を含むので2 >= 2も成立する。|
|CENTER:等号|CENTER:1 = 1,1 <> 1||
|CENTER:文字列の比較|CENTER:Like "a"|CENTER:詳細は後述|
--''比較演算子の文字列の比較について''~
この演算子を使うと正規表現のようなパターンマッチを行うことができる。~
あくまで正規表現のようなものであって正規表現ではない。~
---完全一致~
 Sub 文字列の比較1完全一致()
 Dim str As String
 str = Range("A1").Value
     If str Like "a" Then
         'A1セルに半角のaが入力されたとき
         Range("A2").Value = "一致"
     Else
         'それ以外
         Range("A2").Value = "一致しない"
     End If
 End Sub
---部分一致~
 Sub 文字列の比較2部分一致()
 Dim str As String
 str = Range("A1").Value
     If str Like "*a*" Then'複数の指定はa*b*cのようになる
         'A1セルに半角のaを含む文字列が入力されたとき
         Range("A2").Value = "一致"
     Else
         'それ以外
         Range("A2").Value = "一致しない"
     End If
 End Sub
---ある一定の範囲内での一致~
 Sub 文字列の比較3ある範囲内での一致()
 Dim str As String
 str = Range("A1").Value
     If str Like "[a-g]" Then '数字[1-9]・ひらがな[あ-こ]・かたかな[ア-コ]も可
         'A1セルに半角のa,b,c,d,e,f,gのいずれか一文字が入力されたとき
         Range("A2").Value = "一致"
     Else
         'それ以外
         Range("A2").Value = "一致しない"
     End If
 End Sub
---ある一定の範囲外での一致~
 Sub 文字列の比較4ある範囲外での一致()
 Dim str As String
 str = Range("A1").Value
     If str Like "[!a-d]" Then
         'A1セルにa,b,c,d以外のアルファベットが一文字だけ入力されたとき
         Range("A2").Value = "一致"
     Else
         'それ以外
         Range("A2").Value = "一致しない"
     End If
 End Sub
---任意の文字数~
 Sub 文字列の比較5任意の文字数()
 Dim str As String
 str = Range("A1").Value
     If str Like "???" Then
         'A1セルに3文字の半角全角文字が入力されたとき
         Range("A2").Value = "一致"
     Else
         'それ以外
         Range("A2").Value = "一致しない"
     End If
 End Sub
---任意の桁数の数字~
 Sub 文字列の比較6任意の桁数の数字()
 Dim str As String
 str = Range("A1").Value
     If str Like "###" Then'こういう書き方も出来る[0-9][0-9][0-9]
         'A1セルに3桁の半角全角数字が入力されたとき
         Range("A2").Value = "一致"
     Else
         'それ以外
         Range("A2").Value = "一致しない"
     End If
 End Sub
-''論理演算子''~
こちらも条件を書くときにしばしば使われる。
|CENTER:演算子|CENTER:記号|CENTER:メモ|
|CENTER:論理積|CENTER:条件1 And 条件2|条件1と条件2が両方満たされたとき。 |
|CENTER:論理和|CENTER:条件1 Or 条件2|条件1と条件2のいずれかが満たされたとき。|
|CENTER:排他的論理和|CENTER:条件1 Xor 条件2|条件1と条件2のいずれかが満たされたとき。|
|CENTER:論理否定|CENTER:Not 条件|条件が満たされなかったとき。|
|CENTER:論理等価|CENTER:条件1 Eqv 条件2|条件1と条件2が両方満たされたとき。もしくは両方満たされなかったとき。|
|CENTER:論理包含|CENTER:条件1 Imp 条件2|条件1と条件2が両方満たされなかったとき。|

-''Else If文''~
もっと分岐させたいときに使う。条件が複数あるIf文。
--''プログラム''~
 Sub 条件分岐Else_If()
 Dim hundred As Integer
 hundred = Range("A1").Value
     If hundred >= 100 Then
         'A1セルに100以上が入力されたとき
         Range("A2").Value = "100以上"
     ElseIf hundred >= 90 Then
         'A1セルに90以上が入力されたとき
         Range("A2").Value = "90以上"
     ElseIf hundred >= 80 Then
         'A1セルに80以上が入力されたとき
         Range("A2").Value = "80以上"
     ElseIf hundred >= 70 Then
         'A1セルに70以上が入力されたとき
         Range("A2").Value = "70以上"
     ElseIf hundred >= 60 Then
         'A1セルに60以上が入力されたとき
         Range("A2").Value = "60以上"
     Else
         'A1セルに60未満が入力されたとき
         Range("A2").Value = "60未満"
     End If
 End Sub
--''解説''~
 If 条件1 Then
     条件1が満たされているときの処理
 ElseIf 条件2 Then
     条件2が満たされているときの処理
 ElseIf 条件3 Then
     条件3が満たされているときの処理
 …
 End If
-''Select Case文''~
Else If文は個々の条件を書かなければならないので面倒で見づらい。
--プログラム~
 Sub 条件分岐Select_Case()
 Dim hundred As Integer
 hundred = Range("A1").Value
 Select Case hundred
     Case Is >= 100
         'A1セルに100以上が入力されたとき
         Range("A2").Value = "100以上"
     Case Is >= 90
         'A1セルに90以上が入力されたとき
         Range("A2").Value = "90以上"
     Case Is >= 80
         'A1セルに80以上が入力されたとき
         Range("A2").Value = "80以上"
     Case Is >= 70
         'A1セルに70以上が入力されたとき
         Range("A2").Value = "70以上"
     Case Is >= 60
         'A1セルに60以上が入力されたとき
         Range("A2").Value = "60以上"
     Case Else
         'A1セルに60未満が入力されたとき
         Range("A2").Value = "60未満"
     End Select
 End Sub
--解説~
 Select Case 変数や式など
     Case Is 条件1
        条件1が満たされているときの処理
     Case Is 条件2
         条件2が満たされているときの処理
     Case Is 条件3
         条件3が満たされているときの処理
     …
     Case Else
         どの条件も満たされなかったときの処理
     End Select
条件式を使わない場合(例えばString型の変数に特定の文字列が代入されたことを条件にするというようなとき)、ISは不要。~
 Case "雨"
Toを使えば値の範囲を指定できる。~
 Case 1 To 10'1 <= n => 10 のとき
*繰り返し [#t1f7555b]
無限ループを作ってしまったらEscキーで強制終了しよう。
-''For_Next文''~
--''プログラム''~
 Sub 繰り返しFor_Next()
 Dim num As Integer
 num = Range("A1").Value
    'A1セルに入力された数値だけループを繰り返す
    For i = 1 To num Step 1
    'Cellsについてはセルの操作のCellsによる指定を参照
    Cells(i, 2).Value = "このループは" & i & "回目です"
    Next i
--''解説''~
   For カウンタ変数名 = 初期値 To 終了値 Step 加算値(1なら省略可)
   処理
   Next カウンタ変数名(カウンタ変数名は省略可)
初期値はループ開始時のカウンタ変数の値である。このカウンタ変数の値が終了値になるとループが終了する。カウンタ変数は宣言しなくても使える~
ループを一周するごとにカウンタ変数に加算値が加算される。またExit Forを使うとループを途中で抜けることができる。
--''Exit For使用例''~
[[練習問題-素数判定:http://vipprog.net/wiki/?%E7%B7%B4%E7%BF%92%E5%95%8F%E9%A1%8C#o8db2119]]の[[解答例>練習問題/解答例/素数判定/Excel VBA]]を参照。
-''For_Each文''~
配列で詳しく説明する。~
-''Do_While文''~
何回繰り返すかわからないとき(空セルが無くなるまで処理を続けたいときなど)に使う~
--''プログラム''
 Sub 繰り返しDo_While()
 Dim num As Integer
 Dim i As Integer
 num = Range("A1").Value
 i = 1
    'A1セルに入力された数値だけループを繰り返す
    Do While i <= num
    Cells(i, 2).Value = "このループは" & i & "回目です"
    'ループが一周するごとにiに1が加算される(numの数値に近づく=終了条件に近づく)
    'i++のような書き方は出来ない
    i = i + 1
    Loop
 End Sub
--''解説''~
終了条件が満たされるまで処理を実行し続ける。Exit Doを使うとループを途中で抜けることができる。
 Do While 終了条件
 処理
 Loop
このように後判定にすることもできる。後判定にすると必ず1回は処理を実行する。
 Do 
 処理
 Loop While 終了条件
-''二重ループ''
--''プログラム''~
 Sub 二重ループ()
 '九九の表
 '外側のループが1回終わる間に内側のループが9回行われる
     For i = 1 To 9
        For j = 1 To 9
            Cells(i, j).Value = i & "×" & j & "=" & i * j
        Next j
     Next i
 End Sub

--''解説''~
ループの中にループを組み込むとこのように二重三重の繰り返し処理をさせることができる。~
繰り返しや条件分岐は重要な要素なので練習問題の[[ループ練習>http://vipprog.net/wiki/exercise.html#eb2c4338]]や[[FizzBuzz>http://vipprog.net/wiki/exercise.html#t52e5a48]]でしっかり使い方を覚えよう。

*配列 [#z2f105a1]
-''配列とは''~
複数の同じ型の変数を一括して扱うためのもの。
通常の変数はひとつひとつがバラバラの箱に入っている
 Dim i As Integer    
 Dim j As Integer → 
 Dim k As Integer     | i  |  | j  |  | k  |  | l  |             
 Dim l As Integer     |____| |____| |____| |____|
しかし配列は大きなひとつの箱に複数の中身が入っている。
そしてそれらは0から始まる添え字によって管理される。配列の中身のことを要素という~
この添え字によってX番目のデータを簡単に取り出すことができる。~
よくデータの並べ替え(ソートアルゴリズム)で使われる。
またListBoxのデータは配列形式である。
                               | 0  i    |
                               |.........|
                               | 1  k    |
                               |.........|
                               | 2  j    |
                               |.........|
                               | 3  l    |
                               |_________|
-''一次元配列''~
イメージは配列とはを参照。
--''プログラム''~
 Sub 一次元配列01()
 '配列0から9の平均を求める
 '配列numの宣言
 Dim num(9) As Integer
 'この変数に配列に格納された値の合計を代入する
 Dim sum As Double
 '配列numの中身
 num(0) = 30
 num(1) = 67
 num(2) = 97
 num(3) = 51
 num(4) = 39
 num(5) = 44
 num(6) = 75
 num(7) = 23
 num(8) = 11
 num(9) = 41
 '変数sum
 sum = 0
    'カウンタ変数を添え字に紐付けて
    '配列に格納された値を呼び出してsumに足していき合計を求める
    For i = 0 To 9
    sum = sum + num(i)
    Next
 Range("A1") = "合計" & sum
 Range("A2") = "平均" & sum / 10
 End Sub
--''解説''~
配列の宣言は次の通り。
 Dim 配列名(扱いたいデータ数) as 変数の型
通常、添え字は0からであるが次のようにすれば指定できる。
 '1から10まで10個データを扱う配列
 Dim num(1 to 10) As Integer
次に扱うデータを配列に代入する。
 配列名(添え字) = 数値や文字列等のデータ
-''多次元配列''~
図は二次元配列の例。一次元配列では行だけであったが列が加わる~
三次元配列はさらにに奥行きが加わるような感じ。~
六十次元まで作成可能。どのように値が使われているかはデバッグして調べると良い。~
参考URL:http://www.relief.jp/itnote/archives/018249.php
                               |0-0  i   |1-0  a   |2-0  z   |
                               |.........|.........|.........|
                               |0-1  k   |1-1  s   |2-1  x   |
                               |.........|.........|.........|
                               |0-2  j   |1-2  d   |2-2  c   |
                               |.........|.........|.........|
                               |0-3  l   |1-3  f   |2-3  v   |
                               |_________|_________|_________|
--''プログラム''~
 Sub 二次元配列()
 '任意の配列の要素の表示
 '3行4列の二次元配列
 Dim num(2, 3) As String
 Dim i As Integer
 Dim j As Integer
 '配列numの生成
 num(0, 0) = "i"
 num(0, 1) = "k"
 num(0, 2) = "j"
 num(0, 3) = "i"
 num(1, 0) = "a"
 num(1, 1) = "S"
 num(1, 2) = "d"
 num(1, 3) = "f"
 num(2, 0) = "z"
 num(2, 1) = "x"
 num(2, 2) = "c"
 num(2, 3) = "v"
 '添え字の指定
 i = Range("A1").Value
 j = Range("A2").Value
 '配列の要素の表示
 Range("A3").Value = "配列(" & i & "、" & j & ")の表示"
 Range("A4").Value = num(i, j)
 End Sub
-''Array関数''~
-''練習問題-干支を求める''~
*ユーザー定義型の変数 [#w1e77530]
*ワークシートとブックの操作 [#w17595bb]
*関数の活用 [#od08c566]
*ユーザー定義関数 [#qa414172]
*グラフ [#s128df53]
*ピボットテーブル [#h539fec6]
*ユーザーフォーム [#u3c9f8de]
*デバッグ [#jc8d8c64]
*エラー処理 [#yfeaf1e4]
*Win32APIの呼び出し [#q53b9111]
*もっと大きなプログラムを作るときの注意事項 [#ffd6f474]
*参考 [#y7791cc5]
-''ユーザーフォーム''~
--アプリ作成で学ぶExcel VBAプログラミングユーザーフォーム&コントロール~
--ひと目でわかるMicrosoft Excel VBAコントロール&フォーム活用術~
-''web系''~
--Excel VBAでIEを思いのままに操作できるプログラミング術~
--新・Excel VBAで極めるシステムトレード 最強パワーアップ編~
-''ゲーム''~
--Excel VBA アクションゲーム作成入門~
-''3Dグラフィックス''~
--Excelで学ぶ コンピュータグラフィックス技術入門~
-''シミュレーション・数値計算''~
--Excelで遊ぶ手作り数学シミュレーション―グラフ機能とVBAプログラムを自在に操る~

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