Excel&VBA
 

目 次

VBA

  • Microsoft OfficeアプリケーションのExcelやAccessに搭載されているマクロ
  • VBA(Visual Basic for Applications)
    • Applicationsの意味:適応、応用、願書・申請書
    • ある特定の目的のために設計されたソフトウェア => Application Softwear

LINK

6つのキーワード

  • オブジェクト(Object)
    • 「物」、「対象」、操作の対象となるもの
    • セル、セル範囲、シート、ブック等
    • 例:「携帯で電話する」の「携帯」
  • メソッド(Method)
    • 「方法」、動作を示す
    • オブジェクトへの操作を示す
    • 例:「携帯で電話する」の「電話する」
  • プロパティ(Property)
    • 「特性」、「属性」
    • オブジェクトの特徴や性質を示す
    • 例:「携帯はdocomoです」の「docomo」
  • プロシージャ(Procedure)
    • 「手順」、「手続き」
    • VBAではマクロとほぼ同じ意味、一連の操作の記述の集まり
    • 「Sub」から「End Sub」までが「Subプロシージャ」という1つのマクロ
  • 変数(Value)
    • 値(数値や文字)を一時的に保管する「入れ物」
  • ステートメント(Statement)
    • 「声明」、「発言」、構文のこと
    • 「繰り返し」、「条件分岐」等の構文がある

Excel&VBAマクロの作成手順

  • Excelの起動
    • Excelブックの中に3つのシートがあります。
    • セキュリティの設定
      • [ツール]-[マクロ]-[セキュリティ]
      • [セキュリティレベル]の[低]を選択([中]でも可)
    • Visual Basic Editor の起動
      • [ツール]-[マクロ]-[Visual Basic Editor]:[Alt]+[F11]
      • [挿入]-[標準モジュール]
      • Editorでマクロ作成
      • メッセージ(MsgBox)の表示マクロ作成
        Sub macro0()
          MsgBox "こんにちは!"
        End Sub
      • [実行]-[Sub/ユーザーフォームの実行]:[F5]
    • ファイルの保存
  • Excelの終了

例題(簡単に!)

メッセージボックス関数

  • MsgBox 関数
    • 整数型 (Integer) の値を返します。ダイアログ ボックスにメッセージを表示し、ボタンがクリックされるのを待って、どのボタンがクリックされたのかを示す値を返します。
      MsgBox(prompt[, buttons] [, title] [, helpfile, context])
  • メッセージボックスによる表示
    Sub macro()
    ' 文字列の連結
      MsgBox "こんにちは!" & "…です。"
    End Sub
  • 複数のメッセージボックス
    Sub macro1()
    ' 複数のメッセージボックスによる表示
      MsgBox "マクロ1プログラムの開始"
      MsgBox "マクロ1プログラムの終了"
    End Sub
  • メッセージボックスの引数(1)
    Sub macro2()
    ' メッセージボックスの引数
      MsgBox "マクロ2プログラムの開始"
      MsgBox "「はい」か「いいえ」を押して下さい", vbYesNo, "YesNoボタン"
      MsgBox "マクロ2プログラムの終了"
    End Sub
  • メッセージボックスの引数(2)
    Sub MsgBoxSample()
      MsgBox "こんにちは!", vbOKOnly, "OKOnly"
      MsgBox "こんにちは!", vbOKCancel, "OKCancel"
      MsgBox "こんにちは!", vbAbortRetryIgnore, "AbortRetryIgnore"
      MsgBox "こんにちは!", vbYesNoCancel, "YesNoCancel"
      MsgBox "こんにちは!", vbYesNo, "YesNo"
      MsgBox "こんにちは!", vbRetryCancel, "RetryCancel"
      MsgBox "こんにちは!", vbCritical, "Critical"
      MsgBox "こんにちは!", vbQuestion, "Question"
    End Sub
  • 演習:いろいろなメッセージを表示させてください。VBAマクロプログラムの実行順序を確認すること。

インプットボックス関数とセル操作

  • InputBox関数
    • 文字列型 (String) の値を返します。ダイアログ ボックスにメッセージとテキスト ボックスを表示し、文字列が入力されるか、またはボタンがクリックされると、テキスト ボックスの内容を返します。
      InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])
  • Rangeプロパティ
    • セル範囲を位置や名前で扱う
  • Cellsプロパティ
    • セル範囲を数値で扱う
  • Valueプロパティ
    • セルの値を取得/設定する
  • インプットボックスとセルへの出力
    Sub InputSample1()
    ' インプットボックスとセルへの出力
      MsgBox "プログラムの開始"
      Range("A1").Value = InputBox("姓を入力して下さい", "姓入力")
      Cells(2,3).Value = InputBox("名を入力して下さい", "名入力")
      MsgBox "プログラムの終了"
    End Sub
  • 演習:Rangeプロパティ、Cellsプロパティの引数の違いを理解し、任意のセル番地に文字列を出力してください。また、1から10までの累算値をセル番地"B10"に出力してください。

セル入力

  • 任意のセルに文字列入力(1) Rage
    Sub range1()
      MsgBox "プログラムの開始"
      Range("A1").Value = "テスト"
      MsgBox "プログラムの途中"
      Range("B3:D7").Value = "範囲"
      MsgBox "プログラムの終了"
    End Sub
  • 任意のセルに文字列入力(2) Cells
    Sub cells1()
      MsgBox "プログラムの開始"
      Cells(1, 1).Value = "文字列1"
      Cells(2, 2).Value = "文字列2"
      Cells(3, 3).Value = "文字列3"
      MsgBox "プログラムの終了"
    End Sub
  • 足し算マクロとセルのクリアーマクロ
    Sub Add()
      MsgBox "プログラムの開始"
      Cells.ClearContents
      MsgBox "セルのクリアー終了"
      Cells(1, 1).Value = InputBox("X?")
      Cells(1, 3).Value = InputBox("Y?")
      Cells(1, 2).Value = "+"
      Cells(1, 4).Value = "="
      Cells(1, 5).Value = Cells(1, 1).Value + Cells(1, 3).Value
      MsgBox "プログラムの終了"
    End Sub
    
    Sub Clear()
    ' セルのクリアー
      Cells.ClearContents
    End Sub
  • 演習:Rangeプロパティ・Cellsプロパティの引数の違い、Cells.ClearContentsの動作を理解し、例題の加算のプログラムに加え、他の四則演算のプログラムを作成してください。

変数

  • 文字列(String)変数「氏名」への入力とセル範囲への出力
    Sub ValueSample1()
    ' 文字列(String)変数「氏名」への入力とセル範囲への出力
      Dim 氏名
      MsgBox "プログラムの開始"
      氏名 = InputBox("氏名を入力して下さい", "氏名入力")
      Range("A1:C5").Value = 氏名
      MsgBox "プログラムの終了"
    End Sub
  • 文字列の連結
    Sub macro5()
    ' 文字列の連結
      Dim 氏名
      MsgBox "マクロ5の開始"
      氏名 = InputBox("氏名を入力して下さい", "氏名入力")
      MsgBox " あなたの名前は" & 氏名 & "です"
      MsgBox "マクロ5の終了"
    End Sub

四則演算

  • 四則演算(1)
    Sub macro6()
    ' 四則演算(1)
      Dim data1 As Integer
      Dim data2 As Integer
      MsgBox "マクロ6の開始"
      data1 = InputBox("data1を入力して下さい", "data1入力")
      data2 = InputBox("data2を入力して下さい", "data2入力")
      MsgBox " data1とdata2の和は" & data1 + data2 & "です"
      MsgBox "マクロ6の終了"
    End Sub
  • 四則演算(2)
    Sub macro7()
    ' 四則演算(2)
      Dim data1 As Integer
      Dim data2 As Integer
      MsgBox "マクロ7の開始"
      Cells.ClearContents
      data1 = InputBox("data1を入力して下さい", "data1入力")
      data2 = InputBox("data2を入力して下さい", "data2入力")
      Range("A1").Value = "data1="
      Range("B1").Value = data1
      Range("A2").Value = "data2="
      Range("B2").Value = data2
      Range("A4").Value = "data1+data2="
      Range("B4").Value = data1 + data2
      MsgBox "マクロ7の終了"
    End Sub

繰り返しFor文

Sub For文()
  Dim i As Integer

  For i = 1 To 10
    Cells(i, 1).Value = i
    Cells(i, 2).Value = "回目"
  Next i
End Sub

その他

  • 文字列を5回入力
    Sub 文字入力()
      Dim cnt As Integer
    
      For cnt = 1 To 5
        Cells(cnt, 1).Value = "文字列0"
      Next cnt
    
      Range("A1").Select
    End Sub
  • 繰り返しの回数入力
    Sub 繰り返し()
      Dim num As Integer
    
      num = 1
    
      Do While num <= 10
        Cells(num, 1).Value = num & "回目"
        num = num + 1
      Loop
    
    End Sub
  • 条件分岐
    Sub 条件判断()
    
      If Range("A1").Value > 10 Then
        Range("A2").Value = "10より大きい値です"
      Else
        Range("A2").Value = "10以下の値です"
      End If
    
    End Sub


添付ファイル: fileVBA-Sample.zip 348件 [詳細] file051221.xls 414件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-06-15 (月) 10:09:34 (1924d)