本記事で説明するもの
こんにちは。nkmrです。
本記事では、EXCEL VBA(マクロ)を学ぶ上で絶対に抑えておきたい基本知識を説明します。
本記事は、別投稿している
をもとに 紹介しています。
初心者向けに本当に必要なVBA全般知識を
全パート5つにまとめている記事となり、そちらもご覧いただき、
VBAで より効率化を目指して頂ければ幸いです。
VBAで絶対におさえておく基本知識は3つ
絶対におさえておく基本知識は3つあります。
<基本知識>
①レンジとセルの基本・・・1番重要な知識
②コード構文の基本
③文字列の扱い方の基本(個人的に最初に知りたかったもの)
実現したい事を達成するためには
専門用語を1から理解することは必要ありません。
場当たり的に都度理解していけば十分です。
つまり、場当たり的に コードを理解できる知識さえあれば良いのです。
分厚い専門書をInputし終える頃には、
最も重要なコーディング=Outputする作業をする気力がなくなってしまいます。
繰り返しますが、場当たり的にコードを理解できれば良いのです。
その場当たり的にコードを理解するために、
学習初期で本当に必要な基礎知識は3つだった…ということになります。
(この知識を知らなかったため、何度も挫折しかけまして、経験上お伝えしたかった次第です。)
※余談※
プログラムにおいての大切な学習方法は
最低限のルールを学ぶ(Input)→Output→出来ないから調べる(Input)→Outputの順だと思っています。
多くの方は、
めいいっぱい学ぶ(Input)→Output→出来ないから調べる(Input)→Outputの順だと思いますが、
これでは入り口のInputで挫折しちゃいます。
(僕自身もそれで挫折しかけました。)
これからご説明する 3つの基本知識を理解しておけば、
今後、不明点を調べる際、各Webサイトで紹介されている
VBAコードの内容を 「何となく」でも理解が出来る確率が大幅に上がります。
この「なんとなく」が実は重要で、
プログラムをトライ&エラーで経験値に変えていく作業はどうしても必要となり、
なんとなくが理解できれば、まずはトライができるためとても重要です。
【1つ目】レンジとセルの基本(重要)
レンジとセルってそもそも何?という方に説明すると、
セルは 「A1」というように表現がされ、
レンジは「セルの範囲」を意味し「A1:C3」というような表現がされます。
![](https://i0.wp.com/nkmrdai.com/wp-content/uploads/2020/01/21ee1b7f660597db37bea2c764868b84.png?resize=437%2C257&ssl=1)
EXCEL関数を利用する際、よく目にするかと思いますが、
制御したいセルを特定しなければ 何も出来ません。
VBAでは 「Range」と「Cells」という2つの表現方法で セルを特定させます。
このパートではセルの特定方法(位置関係)を理解するために、
EXCELセル上にVBA上でのコードを記載し表現します。
VBAコード上でのセルの表現の仕方
![](https://i0.wp.com/nkmrdai.com/wp-content/uploads/2020/01/2c502a1e146600a5516df665025cfa40.png?resize=819%2C366&ssl=1)
Cellsを用いた特定方法が個人的に重要だと思います。
というのも、Cellsの考え方が分からずにVBAを倦厭している人を多く見ているからです。
CellsはCells(行,列)でセルを表現しているだけですので、
このタイミングでしっかりおきましょう。
<EXCEL表現> <VBAコード上での表現>
A1 = Range(“A1”) = Cells(1,1)
A2 = Range(“A2”) = Cells(2,1)
A3 = Range(“A3”) = Cells(3,1)
B1 = Range(“B1”) = Cells(1,2)
B2 = Range(“B2”) = Cells(2,2)
B3 = Range(“B3”) = Cells(3,2)
C1 = Range(“C1”) = Cells(1,3)
C2 = Range(“C2”) = Cells(2,3)
C3 = Range(“C3”) = Cells(3,3)
VBAコード上でのレンジの表現の仕方
![](https://i0.wp.com/nkmrdai.com/wp-content/uploads/2020/01/aae37123cf4e00bf7fbd424a1eeeff55.png?resize=610%2C355&ssl=1)
<EXCEL表現> <VBAコード上での表現>
A1:B3 = Range(“A1:B3”)
= Range(“A1”,”B3”)
= Range(Cells(1, 1), Cells(3, 2))
【2つ目】コード構文の基本
VBAのセルに対するコード構文は2つだけです。
<構文の種類>
1.プロパティ構文
構文:対象(オブジェクト).属性(プロパティ)=値
![](https://i0.wp.com/nkmrdai.com/wp-content/uploads/2020/01/4c85b01bc75e8ea007d2d1da83bc9f44.png?resize=611%2C524&ssl=1)
2.メソッド構文
-SV系-
構文:対象(オブジェクト).動作(メソッド)
-SVO系-
構文:対象(オブジェクト).動作(メソッド) 対象(オブジェクト)
![](https://i0.wp.com/nkmrdai.com/wp-content/uploads/2020/01/da9872043ff61268c5330f3ea9e751c9.png?resize=610%2C416&ssl=1)
![](https://i0.wp.com/nkmrdai.com/wp-content/uploads/2020/01/85c5749440b973a2dbf82d900bc1c7e8.png?resize=613%2C417&ssl=1)
メソッド構文は英語の文法と同じです。
S(主語)+V(自動詞)形式のSV系や
S(主語)+V(他動詞)+O(目的語)形式のSVO系で 表現されているからです。
プロパティ構文とメソッド構文で覚えておくこと
メソッド構文(SV系)はSに対しVが作用するのみなので覚えていられるかと。
ここで必ず覚えておくことととしては以下の通りです。
<覚えること>
・プロパティ構文は、右のものが 左に作用する
・メソッド構文(SVO系)は、左のものを 右に作用する
作用させる向きが それぞれ逆なので このポイントを覚えておけばOKです。
【3つ目】文字列の扱い方の基本(個人的に最初に知りたかったもの)
EXCELの関数と同じように VBAでも文字列として扱うものは
「“ (ダブルコーテーション)」で文字列を囲います。
EXCEL関数の IF文を使用する人はイメージが付きやすいと思います。
![](https://i0.wp.com/nkmrdai.com/wp-content/uploads/2020/01/b60ad74da8f089365a5a0fa5dba5685d.png?resize=892%2C530&ssl=1)
EXCEL VBAも 「EXCEL」なので、
文字列の扱いは 関数で使用する方法と同じであると考えてください。
知ってしまえば簡単だけど、
VBA参考書で登場するのは 意外と後ろの方だったので
絶対にはじめに知っておきたかったものとしてお伝えしたかったです。
終わりに(VBAの学習に興味があれば)
本記事で紹介した3つの基本を理解しておけば、
今後、不明点を調べる際、各Webサイトで紹介されている
VBAコードの内容を 「何となく」でも理解が出来る確率が大幅に上がります。
それでも理解が出来なかったとき、
潔くInputに努めて Output→Inputのサイクルを回しましょう。
しかしながら、何を指標にInputすれば良いか迷うことがあると思います。
僕もその一人で 何度も挫折しかけました。
そんな挫折しかけた経験を活かし、
本当に必要な知識だけをまとめたVBA学習記事を
以下の投稿にまとめていますので、
学習方法に迷っていたら 無料ですので 学習してみてください。
数時間で 驚くほど VBAのことを知ることが出来ると思います。