[マクロ] はじめてのプログラミング

[準備]が終わったら、マクロプログラム本体を書き始めてみよう。
Visual Basicのウィンドウ(図1)の
「Sub utility()」と、
「End Sub」の間に書き込んでいく。

図1 Visual Basicウィンドウ

マクロプログラムを書いたら、[実行]や[デバッグ]を行うことになる。
ショートカットで表示されている。
緑色の「▷」は実行、二本の縦棒「|| 」は中断、四角「□」はリセット。
試しに、この状態で実行「▷」をクリックしてみよう。
何も起こらない…..
マクロ本体に何も書いてないからあたりまえ!

《STEP 1》

EXCELに下の図2のようなデータがあったとしよう。(出願番号は実際にあるデータだが、「発明者数」の欄はまったくの創作である。)
「発明者数」の欄の右に、発明者が3人以上かそれより少ないかを判定して、多ければ「多」、少なければ「少」を出力する「発明者数判定」欄を追加するプログラムを作ってみよう。


図2 処理対象のEXCELデータ

プログラムは、データを入力して、何らかの処理をして、その結果を出力するのであるから、最も基本的な機能である。

G1セルに「発明者数判定」と書き込んでみる。
① まずプログラム名を「step_1」に変更しよう。(いきなり「utility」では名前負けする気がする。因みに、ハイフン「-」ではなくアンダーバー「_」を使うのは、引き算のマイナス「-」との混同を避けるため。プログラミングではおなじみなので、慣れていただきたい。)
② 「G1セル」に「発明者数判定」と書きこむ

Sub step_1()
    Range(“G1”) = “発明者数判定”
End Sub

早速、実行「▷」してみよう。 意外と簡単に成功!


図3 G1セルへの出力に成功!

③ 「F2セル」の値を読み込んで3以上かどうかを判定して、その結果を「G2セル」に出力する。
  「判定」には「if文」を使おう。文法は、

  If 条件 Then
    条件が「真」だったときの処理
  Else
    条件が「偽」だったときの処理
  End If
  
  である。書いてみよう。

Sub step_1()
    Range(“G1”) = “発明者数判定”
    If Range(“F2”) >= 3 Then
        Range(“G2”) = “多”
    Else
        Range(“G2”) = “少”
    End If
End Sub

早速、実行「▷」してみよう。 またまた意外と簡単に成功!


図3 発明者数を読み込んで判定し、結果を出力した

ここまでできれば後は簡単!他の行にも同じ処理を繰り返せば良いのだから。プログラムはこんな風になる。

Sub step_1()
    Range(“G1”) = “発明者数判定”
    If Range(“F2”) >= 3 Then
        Range(“G2”) = “多”
    Else
        Range(“G2”) = “少”
    End If
    If Range(“F3”) >= 3 Then
        Range(“G3”) = “多”
    Else
        Range(“G3”) = “少”
    End If
             :
             :
    If Range(“F11”) >= 3 Then
        Range(“G11”) = “多”
    Else
        Range(“G11”) = “少”
    End If
End Sub

正しく動作するとは思うけれど、さすがに芸がなさすぎる。それに、行数が膨大になるとやってられない。
そこでプログラミングの世界では、同じ動作を繰り返すときには、「ループ」を使う。
次回「[マクロ] STEP 1 “For Loop”」に続く。

《コラム》 用語「マクロ」「VBA」「プログラム」「マクロプログラム」について
上の4語をなんとなく使い分けているような、同じ意味で使っているような。
マクロ:コンピュータ(アプリケーション)を自動的に操作するための仕組みを一般的に「マクロ」と呼ぶ
マクロプログラム:マクロの内容を、プログラミング言語を使って記述したもの、つまり、「マクロのためのプログラム」のこと
プログラム:プログラミング言語で記述された、コンピュータにさせたい動作の内容
ここで、「プログラミング言語」を説明なしで使ってしまっている。
プログラミング言語:プログラムを解釈してユーザーが期待する通りにコンピュータに動作させるために、どのような命令を与えれば良いか、プログラムを書くときの一定の決め事、約束。その決め事、約束は、「文法」とも呼ばれ、「言語」にみたてられて名付けられている。
VBA:Visual Basic for Applicaton.  古くから使われている「BASIC」というプログラミング言語がある。これを改善されて「Visual」になったのが「Visual Basic」。アプリケーション向けにカスタマイズしたのが「VBA」。
まとめると、「マイクロソフト社が、Excelを含むOfficeアプリケーションのマクロを実現するためにVBAを提供していて、ユーザーがそこに書くプログラム(マクロプログラム)を「マクロ」と呼ぶことも多い」ということになる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です