マクロの記録と記録したマクロのコードの確認を行った

はじめに
Excel VBAの基礎は、すらすら分かるシリーズで、一年前に学んでいる。
基礎ができていても応用が出来なければ、スキルとしてアピールすることが出来ない。
今の仕事でもマクロを使って効率化できる部分があるかもしれない。
ネット上に落ちている情報を使って、マクロを使っていく。
ちなみに、マクロとVBAは同じ意味なのか?
その辺についても書いていきたい。
それでは早速始めていこう。
これを読んでいるあなたが、Excel VBAに興味を持てるような記事を書いていきたい。
マクロを記録する準備を整える
Excelにマクロの記録という機能がある。
デフォルトのテンプレートの中にタスク管理表があったので、それを開いた。

開発タブにマクロの記録がある。

このボタンを押すと、ユーザーの操作が記録される。
例えば、B3にカーソルが当たっている状態で、このボタンを押す。

ポップアップモーダルが表示される。

マクロ名を変更できたり、ショートカット キーを設定できるみたいだが、今回はこのままOKを押す。
記録の準備が整った。

文字の削除を記録する
では、タスクという文字を削除してみよう。
削除完了。

今行った削除の動作がマクロとして記録されているだろう。
記録終了をクリックする。

記録したマクロを確認する
そして、マクロというボタンをクリックしてみる。
マクロの表示というツールチップが出てきたことから、ここで記録したマクロが確認できるのではないだろうか。

答えは、NOだ。
記録したマクロを実行するためのモーダルが出てきた。

おそらく実行を押すと、先ほど行った動作が再現されるだろう。
現在選択されているセルに入っている値が削除されるはずだ。
編集ボタンがあるので、押してみよう。
これがVBAコードと思われる
きたー。

記録したマクロが書いてある。
前回の記事で学んだように、Sub 〇〇 から End Subの間に処理を書いていく。
この空間(処理を書くところ)をプロシージャーと呼ぶ。
ここで、二つ疑問が生じている。
一つ目は、Macro1 Macroという緑色の記述は何か?
二つ目は、Selection.ClearContentsとは何か?
Macro1 Macroという緑色の記述は何か?
一つ目のMacro1は、記録したマクロの名前だ。
Macroはマクロのこと。
こちらのサイトでは、マクロの記録を行なっているが、そこでも同じ緑色の文字が表示されていた。

マクロの記録を行うと自動生成される決まり文句と認識しておくのがいいだろう。
Selection.ClearContentsとは何か?
おそらく、現在選択しているセルに入っている内容を削除という意味だ。
Selectionが現在選択という意味。
そして、ClearContentsが内容を削除という意味。
仮説と検証は大事なので、検索して検証していこう。
Selectionとは?
「VBA selection」で検索をかける。

Microsoftの公式サイトをクリックする。

「Application オブジェクトの作業中のワークシートで現在選択されているオブジェクトを返します。」
とのこと。
予想通り、現在選択されているオブジェクトのことを指すようだ。
ここで、Applicationオブジェクトって何?
オブジェクトって何?
という疑問が生じる。
Applicationオブジェクトとは?
先ほど示したMicrosoftの公式サイトで、サイドバーで階層が表現されている。

Excel > オブジェクト モデル > アプリケーション オブジェクト
という階層だ。
アプリケーションオブジェクトのページを見てみよう。

ここに書いてある内容は、別の記事で触れていきたい。
イベント、メソッド、プロパティがたくさんある。
どれもVBAを記述していく上で、必要なものだ。
ClearContentsとは?
ClearContentsは、イベントかメソッドか、はたまた、プロパティか。
メソッドであると思われる。
理由は、内容を削除するという動作だから。
メソッドは、日本語でいう動詞のようなものだ。
「私は朝食を食べる」の「食べる」の部分。
公式サイトの検索ボックスで検索をかける。

インクリメンタルサーチが実装されていた。
検索窓に文字を入力すると、候補が即座に表示される機能のことだ。
Vue.jsなどで実現できる。
Vue.jsはJavaScriptのライブラリ。
Web業界では大変人気である。
まずは、一番上の「ChatAreaオブジェクト」を見ていく。

これは、グラフからデータ(系列)をクリアするメソッド。

次に二つ目の「Rangeオブジェクト」を見ていこう。

範囲内の数式と値をクリアします。
とのこと。

【2回目】Selection.ClearContentsとは何か?
Selectionが、Application オブジェクトの作業中のワークシートで現在選択されているオブジェクト。
ClearContentsが、範囲内の数式と値をクリアするメソッド。
よって、Selection.ClearContentsは、現在選択されているセルを削除することだ。
コメントを残す