VBAの便利な初期設定とRangeを使った初めてのプログラミング

今回はVBA初心者講座の第2弾です。

【 便利な環境作りとプログラムの書き方の基礎 】というお話です。

VBAを使いこなしていくには、最初に環境を整えておくことが大切です。

後々あれこれ表示させるより、便利で使えるものを先に表示させてプログラムの環境を整えておきましょう。

「備えあれば憂いなし」準備はすごく大切なので、落ち着いて一つずつ環境を整えていきましょう。

それでは、早速本編へ行ってみましょう。

準備開始!!!

VBAを使うにはマクロ有効ブックとして保存

前回は作ったブックを保存しませんでしたが、今回は保存してみましょう。

え? ブックの保存って普通にやれば良いんじゃないの? と思いますよね。

つまり、「初めてのVBA.xlsx」として保存すれば良いって

実は、VBAを含むExcel(ブック)の保存方法はルールがあります。

それが、「Excelマクロ有効ブック」という形式で保存しないといけないということです。

この形式で保存すると、「初めてのVBA.xlsm」のように拡張子が「xlsx」ではなく「xlsm」になります。

ブックというのは、作成したExcelのことを言っています。

この形式でないと、マクロ機能(プログラミングしたコード)を実行出来ないので注意が必要です。

では、第1弾で作ったブックを保存してみようと思いますが、前回のコードは無いと思うのでVBEにコピペしておきましょう。

Sub 初めてのプログラミング()

    MsgBox "A Whole New World"

End Sub

①「開発」→「Visual Basic」
②ウィンドウの左端にプロジェクトと書いてあるダイアログ部分の「ThisWorkbook」の上で右クリック
「挿入」→「標準モジュール(M)」をクリック

▼詳しい手順をもう一度見てみたい場合は、第一弾の後半を参考にして下さい。

準備が出来たら手順は普通のExcelとほぼ変わらないのでサラッといきますね

①任意の保存場所を指定して「ファイルの種類(T)」の「Excelマクロ有効ブック(*.xlsm)」を選びましょう。

②「ファイル名(N)」を「初めてのVBA」として「保存」します。

これでブックの保存は出来ました。

続いてプログラムが含まれるブックを開くと普通のExcelとは違う開き方をするので、保存したブックは一度閉じておきます。

普通のExcelと違う開き方について見ていきたいので、さっき保存したブックを開いてみましょう。

「マクロ有効ブック」で保存したブックを初めて開くと「セキュリティの警告」という黄色い帯が表示されます。
この表示が出たら、【コンテンツの有効化】ボタンを必ず押します。

「コンテンツの有効化ボタン」を押さないとプログラムは動きません。

この表示が出たらクリックすることを忘れないで下さい。

このコンテンツの有効化と言うのは、マクロ機能を実行してもいいよという許可を出す行為です。

プログラムというのは、良いことに使えば素晴らしいツールですが悪用すればウイルスソフトです。

例えば、Web上にあった「マクロ機能付きファイル」を有効にすることで個人情報が盗まれたり、勝手に設定を変更するなど悪用することも出来るので注意して下さい。

VBEの環境を整えておこう

VBEの環境を前もって整えておくことは大切です。

下準備をしておけば後々プログラムを組んだりデバック作業(コードに問題が無いかチェックすること)をする時に便利なので、先に準備しておきましょう。

まずは、必要なウィンドウをチェックしておきましょう

①プロジェクト・ウインドウ

ブックやシート・モジュールなどを表示・管理するウインドウです。

モジュールとは、簡単に言うとコードを書くための場所のことです。

②コード・ウインドウ

コードを書くためのウインドウ です。

ここにコードをせっせと書いていきます。そのままの意味ですね。

③プロパティ・ウインドウ

主にユーザーフォームなどの設定をするためのウインドウ です。

今は気にしないで表示させておけばOKくらいに思っておけば十分です。

④ローカル・ウィンドウ

変数や配列の内容を表示してくれるウインドウ です。

これも今は表示させておけばOKと思っていれば十分です。

⑤イミディエイト・ウィンドウ

デバックなどの作業をした結果などを表示してくれるウインドウ です。

これも今は表示させておけばOKと思っていれば十分です。

⑥編集ツールバー

一気にコメントアウトなどをする機能が含まれた便利なツールバーです。

これも今は表示させておけばOKと思っていれば十分です。

ここで問題になるのがこれらはデフォルトでは表示されていないことです。

じゃあ、どうやって表示させれば良いのか?

ということを整理しましょう。

基本的には、表示メニューをクリックすると全て表示させることができます。

それぞれの項目をクリックしていけば表示自体は簡単です。

ただ、整列するのに多少コツが必要です。

手順は、今回動画としてまとめたのでこちらを見て整理してみましょう。

表示の方法はこんな感じです

これでプログラミングを快適にする準備ができました。

それでは、実際に少しプログラミングをしてみましょう。

VBAで作るマンガランキングトップ5

今回の目的は、マンガのランキングトップ5をVBAで作ってみましょう

VBAの基本部分なのでまずは、このやり方を身に着けちゃいましょう

最初にプログラミングの結果とコードを見ておきましょう

コレがVBAだけで作ったランキング結果です

まずは初歩としてこのコードを書けるようにしてみましょう

これが今回のコードです

基本的に同じ作りをしているのでまずはコードに慣れてみましょう

Sub マンガランキングトップ5()

    Range("a1") = "マンガランキングトップ5"
    Range("a2") = "【第1位】"
    Range("b2") = "呪術廻戦"
    Range("a3") = "【第2位】"
    Range("b3") = "キングダム"
    Range("a4") = "【第3位】"
    Range("b4") = "暁のヨナ"
    Range("a5") = "【第4位】"
    Range("b5") = "進撃の巨人"
    Range("a6") = "【第5位】"
    Range("b6") = "薬屋のひとりごと"

End Sub

コードのコピペをしたい時は、コチラを使って下さい

コードの基本はSub タイトル()~EndSubの間に書くべし

まず、プログラミングの基本ルールを押さえておきましょう

ポイント

・プログラミング全般の基本ですが、コードは上から順に実行される
・基本的に日本語は使えないし、全角のスペースも使えない
・日本語(全角文字)を使うとエラーになる
・日本語を使う時はルールを守れば大丈夫

まず、このコードを簡単にしましょう。

タイトルを入力したいのでシンプルにこんな感じにします

コレがタイトルを入力するコードです

「Sub(サブ)」や「Range(レンジ)」の前のスペースは読みやすいようにわざと改行しています。
また、 「Range」 の行頭が右側にずれて始まっているのも同じ理由です。

Sub(サブ)はVBAの基本で実行したいコードは必ずこの形式で始めます。

Sub 《半角スペース》 タイトル()
End 《半角スペース》 Sub
(オレンジが半角スペース)
コレが基本です「()」も忘れずに

タイトルは、日本語で大丈夫です。

コードの目的が分かるタイトルをつけてあげましょう。

これは、お決まりのルールなのでこの形を覚えちゃいましょう

ポイント

タイトル後の()まで入力して改行すると、「End Sub」を自動でつけてくれます
Subなどは全て小文字で入力してもスペルが合っていれば、自動で大文字・小文字を修正してくれます

次は「Range(“a1”) = “マンガランキングトップ5″」の部分を解説しますね。

まず、前半の「Range(レンジ)」についてですが、Rangeはセルの範囲を指定するコードです。

Range(“a1”)は、A1の範囲のセルを対象にしますよという意味です。

ポイントは、セル範囲を指定する時に「”(ダブルクォーテーション)」で囲むというルールがあります。

書き方の順番は、「Range()」→「Range(“”)」→「Range(“目的のセル”)」こんな手順で書くと分かりやすいと思います。

ポイント

Rangeの行頭のスペースは、「Tab」キーでスペースを設定しています。
こうすることでコードが読みやすくなるので、初心者のうちから習慣にしておきましょう

次は、後半部分の「 = “マンガランキングトップ5″」の部分ですが、「=」の前後は「半角スペース」を入力します。

今回の目的は、A1のセルにタイトルの「 マンガランキングトップ5 」と入力することです。

ここで大切なのが日本語の場合は、基本的に「””」で囲む必要があります。

これもルールなので抑えておきましょう。

この前後をくっつけた「Range(“a1”) = “マンガランキングトップ5″」の意味は、「=」より左側(A1のセル)に右側( マンガランキングトップ5 )の文字を入力してね。

という意味になります。つまりこんな感じです。

VBAの「=」の意味は、数学などの「=」とは意味が違います。

「=」を挟んで「左側のモノ」に「右側の内容」を渡してね。

という意味で使います。

今回の場合は、「A1セル」に「マンガランキングトップ5」という文字を渡す

つまり、「A1セルにマンガランキングトップ5という文字を入力する」という意味になります。

ポイント

Range(“a1”)は、Range(“A1”)と「大文字のA」と書いても大丈夫です。
スムースな入力優先なら小文字、見やすさ優先なら大文字で入力してもいいですね。

ここまでが、書き方や意味の基本です。

最初は、覚えることが多いので大変ですが、この書き方に慣れるとスムースにコードが書けるようになってきますよ。

一息入れながら、少しずつ慣れていきましょう。

2列に分けた書き方を覚えてランキングを完成させよう

次は、「ランキングの順位」と「本のタイトル」を2列に分けた書き方についてです。

考え方は、基本と変わりません。例えばこの部分を見てみましょう。

Range(“a2”) = “【第1位】”
Range(“b2”) = “呪術廻戦”

Range(“a2”) は、A2のセルに 【第1位】 を入力するという意味ですよね。

Range(“b2”) は、B2のセルに 呪術廻戦 という文字を入力するという意味です。

つまり、Excelで入力する時と同じようにセルを指定して文字を入力する。

これをコードとして書いてあげれば、2列に分けた書き方ができる訳です。

①場所の指定 ②書く内容を指定

これだけで好きな場所に好きな内容を書くことが出来ます。

そんなに難しく無いですよね。

ここまでの動きを整理するとこんな感じです。

あとは、同じ方法で他の項目も書いて実行した結果がこれです。

こんな風に入力されます。

慣れないうちは、コードを一つ一つの塊にして(改行して)まとめると分かりやすいです。

「コードの改行は無視」されるので実行結果に影響することは無いので心配いりません。

これで完成です。お疲れ様でした。

まとめ

今回はマクロ有効ブックの保存方法から、コードの基礎になるRaneを使ったシートへの記載をプログラミングしてみました。

普通は、プログラムで書くほどの中身では無いですが自動でサクッと入力されるのは、なんだか面白いですよね。

ただ、プログラミングに慣れてくると分かるんですが、VBAを使って記入した内容はExcelの戻る機能は使えないのでその点は気をつけましょう。

例えば、シートに関数を使った複雑な式が入力されていたとしますよね。

そのセルをプログラムの処理で文字を上書きしたとしましょう。

さて、次に取る行動は何だと思いますか?

「あ!! しまった。 戻るボタンで今の処理戻さないと」って考えるんです。

はい。残念ながら戻るボタンは使えないので実行した結果、複雑な関数が消えてしまう。

そんなことが起こります。

そのリスク回避をするには、シートをコピーしてテスト用にしたりバックアップとして残しておくなどの対策をとった方が良いですね。

そんなリスクもありますが、VBAも分かってくるとドハマリする便利なプログラムなので、楽しみながら覚えてもらえたらと思います。

今回のお話はここまでです。

最後まで読んでいただきありがとうございます。

それでは、次回お会いしましょう。

またね。

コメントを残す

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