H1. VBA の演算子でマクロ作成

使用するファイル:「マクロの練習」フォルダー「いちばんやさしいExcelVBA .xlsm」

H1-1. 算術演算子を使ったマクロを作成する

H1-1-1. Sub プロシージャを追加作成する

  1. 「いちばんやさしいExcelVBA.xlsm」を開き VBE を起動する
  1.  「Sub 演算子を使ったマクロ」と、マクロ名を入力する

「はじめてのマクロ」Sub プロシージャの「End Sub」の下に、「sub 演算子を使ったマクロ」(と、英語のキーワードは小文字)を入力する。

最後に「Enter」キーを押す。

そうすると、sub が Sub となり、マクロ名の後ろの「()」と「End Sub」が入力される。

(g01) Sub プロシージャの追加作成を開始する
(g01) Sub プロシージャの追加作成を開始する
  1.  Sub プロシージャを完成させる
(g02) Subプロシージャを完成させる
(g02) Subプロシージャを完成させる

べき乗の表示

ひらがなの「へ」のキーにある「^」を使う。

2 の 2乗は数式で書くと「2 ^ 2」となる。

H1-1-2. 演算子を使ったマクロを実行する

  1. Excel と VBE を並べて表示し、Sub プロシージャ内にカーソルを置く
(g03) Excel と VBE を並べて置き、カーソルをサブプロシージャ内に置く
(g03) Excel と VBE を並べて置き、カーソルをサブプロシージャ内に置く
  1.  「F5」を押して Sub プロシージャを実行する
(g04) 計算結果がセルに代入される
(g04) 計算結果がセルに代入される

H1-1-3. カッコで計算の順序を変更する

  1.  Sub プロシージャを編集する

足し算・引き算の行を修正して、計算式の一部をカッコで括ることで、計算の優先順位が変わることを確認する。

(g05) 計算式の一部をカッコで括り掛け算を追加する
(g05) 計算式の一部をカッコで括り掛け算を追加する
  1.  Sub プロシージャを実行する
(g06) Subプロシーシャを実行すると計算結果がセルに代入される
(g06) Subプロシーシャを実行すると計算結果がセルに代入される

H1-1-4. Mod 演算子で割り算の余りを求める

  1.  Sub プロシージャを編集する

Mod 演算子を使って、余りを計算する行を追加する。

(g07) 余りを計算する行を追加する
(g07) 余りを計算する行を追加する

Mod 演算子とは

Mod 演算子は、余り(剰余)を求める計算に使う演算子。剰余とは、割り算をした際の余りのこと。

例えば、「7 ÷ 4」を計算すると「1 余り 3」となり、この「余り 3」が Mod で求められる剰余だ。

VBA での Mod 演算子の構文:

割られる数␣Mod␣割る数

  1.  Sub プロシージャを実行する

カーソルを Sub プロシージャ内に置いて「F5」キーを押す。

(g08) マクロを実行すると計算結果がセルに代入される
(g08) マクロを実行すると計算結果がセルに代入される

H1-2. VBA の文字列連結演算子

H1-2-1. 文字列を連結する演算子

ワークシート上で文字列の連結を演算子「&」で行うのと同じように、VBA でも文字列の連結を「&」で行います。

 

Range("B2").Value = "合格" & "です!”」というコードを実行すると、文字列「合格」と「です!」が連結された、「合格です!」という文字列が B2 セルに入力される。

 

 

H1-2-2. &演算子を使ってみる

  1.  Sub プロシージャを編集する

「いちばんやさしいExcelVBA.xlsm」ファイルを開き、VBEを起動する。

演算子「&」を使って文字列の連結を行う行を、マクロに追加してみます。

(g19) &演算子で文字列を連結する2行を追加する
(g19) &演算子で文字列を連結する2行を追加する
  1.  Sub プロシージャを実行する

マクロを実行すると、セルに入力された文字列かどうかは関係なく、二つの文字列は連結されて表示される。

(g20) &演算子を使ったマクロを実行した
(g20) &演算子を使ったマクロを実行した

H1-3. さまざまなエラー

これまでマクロを作成してきたが、エラーが表示されたこともあったかもしれない。

そうしたさまざまなエラーを随時見ていこう。

 

H1-3-1. 文法ミスで発生する赤色になるエラー

コード入力したあとで発生するエラーの例で、赤色になっている部分に明らかな文法ミスがあることを示している。

 

文法ミスによって発生するエラーを「コンパイルエラー」という。

 

Sub プロシージャ名の閉じるカッコだけを誤って削除すると、行全体が赤くなり、そこに誤りがあることを教えてくれる。

 

まちがっている箇所を修正すると、文字色が赤色から元に戻る。

(g09) 文法ミスで発生する(コンパイル)エラー
(g09) 文法ミスで発生する(コンパイル)エラー

 

&演算子の前後にスペースを入れ忘れても、&の後ろは自動的にスペースを入力してくれるが、&の前のスペースは自動的に入れてくれなく、赤色のエラーとなります。

(g21) Range("B1").Value & "です!"の半角スペースが無いと、赤色のエラーになる
(g21) Range("B1").Value & "です!"の半角スペースが無いと、赤色のエラーになる