<< 橙赤色(トウセキショク)とは? | main | 不安について >>
2016.03.19 Saturday

入門!入門!エクセルVBA!【2】

[スポンサードリンク]

0
    JUGEMテーマ:仕事のこと

    VBEにVBAを書く準備が出来た状態

    こんにちは!プログラムなんて一行も書いたことない方のためのExcelVBA入門記事、連載の2回目です!

    尚、第1回の連載はこちらからご覧になれます。

    さて前回は特に意味も説明せずに、いきなりVBAのソースコードを写し取っていただきましたね。

    ところで、繰り返しになり恐縮ですが、プログラミングの学習はスポーツや絵画の習得に似ています。
    「なんのこっちゃ?」とプログラム内容の意味がさっぱり分からなくても、
    手を動かしてサンプルコードを写し取ること。
    そして実際に自身のPCで動かしてみる体験をすること。
    そういった学習方法がとても大切なんです。

    従って、とりあえずサンプルコードを写し取って、自分のPCで動かしますね。
    その次にコードの1行1行の意味を理解していく。
    そういう手順で勉強すると効率的です。



    さて!今回は前回の簡単な復習と、前回写して頂いたコードの解説からはじめたいと思います。
     

    前回の簡単な復習

    まず用語解説から復習しましょう!

    マクロとは:プログラムのことです

    VBAとは:プログラミング言語の一種、ヴィジュアルベーシックforアプリケーションの略称。

    VBEとは:VBAを実際に書いたり編集したりする画面のこと。ヴィジュアルベーシックエディターの略称。

    従って「エクセルVBAを組む」とは、エクセルを自動で動かすためのプログラムをVBAという言語を用いて、
    VBEという編集ソフトで作成することを言います。

    で、

    用語についてはなんとなくの理解でOKです。そのうち慣れます。
    VBAはとっつきにくい印象こそありますが実はとっても簡単で便利なものなので安心していいんですよ!

    で、エクセルの普通の画面からVBEを起動してVBAのプログラムを編集する手順を前回やったわけですが、
    覚えていらっしゃいますでしょうか。

    忘れてしまった方もいるかもしれないので今回も画面の写真を掲載しつつ丁寧に説明していきますね!

    ではまずエクセルの起動をお願いします。

    下記のような画面になりましたでしょうか?

    エクセル2007VBA入門

    そうしたら次に【Alt+F11】を押して下さい。
    (AltとF11を同時に押したままの状態にします)

    すると以下のような画面が出てきます。

    VBE初期画面

    もし、画面左上で[+]VBAProject(book1)となっていたら[+]をクリックして
    中の、Sheet1(Sheet1)を出して下さいね。

    で、Sheet1(Sheet1)をダブルクリックすると、以下のように編集可能な画面になりますね。

    VBE編集画面

    あとはここにプログラムを書いていけばOKです。
    そこで解説のために、前回のプログラムを書いた画面を下記に示します。

    VBE前回のVBAコード付き画面

    ではまず画面の説明から致しますので下図をご覧ください。

    VBE画面説明

    それでは上図を参考に今回書いたVBAプログラムのソースコードの内容を順を追って説明して参ります。
    ソースコードとは上図の「VBAプログラム本文」と「コメント」を合わせたもののことを言います。

    ちなみに上記のようなVBEの画面から通常のエクセルの画面に戻るには【Alt+F11】を押して下さいね。
    Alt+F11】を押すたびに、普通のエクセルの画面→VBE→普通のエクセルの画面→VBE→・・・と
    画面が交互に切り替わることを思い出して下さいね!

    話を戻しましてソースコードの解説に入りますね。
     

    最初のサンプルコードの意味の解説

     
    Sub hello()・・・
    
         'A1セルの値に「Hello VBA!」という文字列をセット・・・
         Range("A1").Value = "Hello VBA!"・・・
    END Sub・・・
    
    ,らい泙脳紊ら下に順々にコードの意味を見ていきましょう!

    ,呂海痢屮廛蹈掘璽献磧廚量樵阿hello()とするという意味です。
    最初にうちは必ず、
     
    Sub 任意のプロシージャー名() ←()は必ずつけるルールです!
    
    命令1
    命令2
    ・
    ・
    ・
    
    END Sub
    

    という形でプログラムを組みます。

    で、プロシージャーというのが分かりづらい概念なのですが、要は、
    そのVBAプログラムの最小の実行単位を指します。
    言うなればプロシージャーは「部品」のようなものです。

    なので、実際に長いプログラムを書くときは
    たくさんのプロシージャーを作り、それらを組み合わせて、
    全体としてキチンとしたシステムを実現するわけです。

    しかし、小さなプログラムなら1個のプロシージャー(部品)だけでも十分という場合も多々あります。
    今回のサンプルプログラムは正にその例ですね。
    単一のプロシージャーだけで完結しています。

    「Sheet1のA1セルにHello! VBA!と表示する」

    だけの単純な処理なので複数のプロシージャーを組み合わせてプログラムを作る必要性が全くないというわけです。

    またプロシージャー名はなんでも好きな名前をつけてOKです。
    例えば以下のように書くこともできます。

    Sub 魚が食べたい()
        Range("A1").Value = "今日の夕食は「サンマ」です。";
    End Sub

    なんて書き方もできます。

    プロシージャー名は日本語でも英語でもなんでもOKです。
    但し後から見てその「部品」が何をするためのものなのか分かりやすい名前をつけましょう。
    現実世界でも例えば化粧ポーチに「救急箱」と名前をつけたら、何が何だか分からなくなりますよね?
    それと全く同じ原理です。

    Sub hello()・・・      

    'A1セルの値に「Hello VBA!」という文字列をセット・・・      
    Range("A1").Value = "Hello VBA!"・・・

    END Sub・・・

    次は△任垢諭緑の部分です。
    これはプログラムに直接影響しないコメントと呼ばれるもので
    プログラムを作る人のメモ書きです。

    その行の命令が何をしているのか?
    どんな目的で書かれたのか?

    などが後から見て、なるべく誰にでも分かるようにコメントを書いておきます。
    コメントを書こうがかくまいがプログラムの動作には何も影響しません。
    しかし一般にはたくさんコメントを書いた方が読みやすい綺麗なプログラムを作ることができるので
    コメントの多用を推奨する方は非常に多く存在します。

    コメントの書式は「'」に続いて書くとその行はコメントと見なされます。
    '」はキーボードの数字の7のキーをShiftを押しながら押下すると出てきます。

    さて、はいよいよエクセルへ命令を与えている行です。

    Range("セル名")で好きなセルを取得できます。
    Range("A1")と書けばA1セルの情報を操作する準備が出来ているということです。

    で、Range("A1").Valueと.Valueが続いていますね。
    これはA1セルの値という意味です。
    ここで登場するドット(.)は日本語に訳すと「~の」という意味です。

    例えば、「人間.手」ならば「人間【の】手」と訳します。

    Range("A1")というのはA1セルを表すわけですが、
    A1セルにはValue(値)以外にも様々な「パーツ」を持っています。
    例えばA1セルの横の長さ、縦の長さ、セルの色などです。
    これは「人間.手」だけでなく「人間.性別」や、「人間.年齢」などを考えることができるのと同じことです。
    以上の説明で「.」の持つ意味を直感的にある程度理解できたのではないかと思います。

    ところで、~.Valueの次に 「=」 がきますね。

    これは数学の「=」とは違う意味です。

    直感的に説明すると「←」に近い意味です。

    つまり「=」とは「=」の右辺を左辺に代入するという意味です。

    この場合、A1セルの値(Value)に”Hello VBA!”という文字列を代入しなさいという命令です。

    A1セルの値 ← ”Hello VBA!”

    というイメージです。

    続いてい任蓮◆END Sub」と書いて、そのプロシージャーの終わりを明言しています。
    END Subを書かないといったいどこまでで、プロシージャーが終わるのかが分からなくなってしまいます。
    文章を書くときに、文末には句点(。)をつけますよね。
    それと同じでプロシージャーの終わりには「END Sub」を付けます。

    以上で前回の解説で写していただいたプログラムの説明は終わりです。

    プロシージャーとか難しい言葉も出てきましたが、
    けっして難しいことではなく、ものすごく簡単なことなので、
    なんとなく腑に落ちなくても、

    「まぁ、慣れれば分かるっしょ」

    くらいの気楽な気持ちで捉えていただいてだいじょうぶですよ!

    さて、A1セルにハロー、ハローと文字列を表示するだけでは
    実務の役には立ちませんね。
    そこで次回からはより実践的なサンプルプログラムを通じて学習していきましょう。

    何卒当連載を今後とも宜しくお願い申し上げます♪


    【この記事の関連記事】
    入門!入門!エクセルVBA【1】


    [PR]Excel VBA 逆引き辞典パーフェクト 2013/2010/2007/2003対応

    ↑ExcelVBAを書く上で是非座右に置きたいVBAの辞書です。
    英語の勉強をするときに英和辞典をおともにしますよね。
    それと全く同じでExcelVBAを勉強するときにそばに1冊あると
    何かと重宝する一冊です。
    筆者も、共同執筆者のミーコさんも1冊持っています。




     

    [スポンサードリンク]

    コメント
    コメントする








     
    この記事のトラックバックURL
    トラックバック
    ● Profile ●
    スポンサードリンク

    姉妹ブログ2よろしくっす♪

    rurupi logs

    心理カウンセラーを目指したい方必見!

    心理カウンセラーになるには?
    ● ad ●

    女性専用の匿名カウンセリング【ボイスマルシェ】新規会員登録で初回1080円オフ!
    ● ●
    Selected Entries
    Categories
            
    Others
    Mobile
    qrcode
    Powered by
    30days Album
    無料ブログ作成サービス JUGEM