なずブログ

インフラSE、Java開発、リモートワークエンジニアな人のメモ帳

スクレイピングまでがんばるVBA講座~その1.環境構築~

f:id:nazuna_0124:20180609224553p:plain

今日もおつかれさま!

忘れがちですけど、椅子に長時間座るのって

重労働ですからね!



おつかれさまです。なずなです。


というわけで、自分が覚えるのは飽きたので、

ちゃっちゃと出力していこうと。


ちゃんとしたものを作ろうとか考えると

めんどくさくなるので雑なテキストベースで

なんと画像すらありません!



この調子でスクレイピングまでこなしていきたいと思います。


本日の章はいわゆる環境構築。

Officeさえ入ってればどこでも使えるのが利点ですが、

少しだけ使いやすくするということと、若干の機能説明です。


Hello Worldまでやったことある人は飛ばしてよい内容になってます。


環境構築

・debug.print "Hello world" でイミディエイトウィンドウに表示する。
・Range("A1") = "Hellow World" でSheet1のセルA1に表示する

ある程度使い始めている人は省略してオッケーです。
基本的な使い方を含めて記載します。

リボンに開発タブ

 初期設定ではリボンに表示がありません。
 オプションのリボン設定で開発にチェックをいれてください。

VBEの起動

2種類あります。

    + ALT + F11
    + 開発タブ > VisualBasic

    多少Excelのバージョンによるかもしれません。
    稀にショートカットで起動しないときあります(バグ?)
    たいてい再起動するとなおります。

VBEの設定

+ イミディエイトトウィンドウを表示
    > Ctrl + G

+ 編集バーの設置
    > 表示 > ツールバー > 編集にチェック

    複数行をコメントアウトするときに使います。

+ オプション設定
    ツール > オプション

    [編集]
        ・自動構文をチェック のチェックをはずす
            お好みでいいです。

        ・変数の宣言を強制する
            なれないうちは必須。

    [エディタ]
        目に優しい。なんとなくカッコイイという理由により
        黒背景がお勧めです。設定箇所だけ参照して色はお好みでどうぞ。

        ・標準コード
            前景:白 背景:黒

        ・コメント
            前景:水色 背景:黒

        ・キーワード
            前景:ピンク 背景:黒

        ・識別子:緑 背景:黒


    以上でそれっぽい画面に変わります。

モジュール作成、プロシージャ作成

+ モジュール作成
    挿入 > 標準モジュール

    画面左下のプロパティで名前が変更できます。
    余談としてExcelVBEでは最初に数字は設定不可。Accessはできたりします。

+ プロシージャ作成
    ちゃちゃっと以下コードを書き込み。

    ``` VB
    Sub Sample1()

        debug.print "hello World"
        Range("A1") = "Hello World"

    end Sub


    ```
    命令の大きな枠をモジュール、小さい枠をプロシージャっていいます。
    名前がいちいち大仰ですね。

    モジュールは標準モジュールともよばれ「ここに書かないと動かない」という
    ケースもあるため覚えるだけ覚えましょう。


    プロシージャ名の「Sample1」は日本語も使えます。
    慣れないうちは普通に使ってしまって構いません。

    バグにつながる場合はありますので、慣れたらすべて英字にしていきましょう。

    [ほかの言語を知っている人のための補足]
        ・VBAでの文字列のくくりはダブルクォーテーションだけです。
            >エスケープするときは"" 2個並べるという方法です。
        ・変数の展開とかもなし。
        ・最後にセミコロンはいりません。
        ・行を分割したいときは _ (アンダーバー) でつなげます。

プログラムの実行方法

    上記までで簡単な命令書(プログラム)の作成ができました。
    つづいて実行方法です。

    イベントハンドラなんて言い方もしますが、「何をすれば」実行されるのかは
    重要なので意識しておきましょう。
    逆に「こういうときに実行させたい」ということも出てきます。

    今回は基本の3種類です。

    + F5キー
        実行したいプロシージャにカーソルを合わせて押すだけ。

    + (Excel画面に戻って)Alt + 8 実行するプロシージャで実行


    + ボタンにマクロ登録

        ボタンは3種類です。

        1. ボタン(フォームコントロール)
        2. ボタン(ActiveX)
        3. 図形

        1,2は開発タブの挿入。
        3は挿入タブです。

        2だけ省略。ほかは設置してから右クリック>マクロ登録
        実行したいプロシージャを選択します。

        開発タブのデザインモードになっていると押せないので注意!



    ほかの実行方法は後述します。一例として紹介。
        ・○○(たとえばセル)の文字列が変化したら実行
        ・一定時間毎に実行
        ・規定時間になったら実行

    ほかのプログラムから呼び出して実行

シートを切り替えてF5を押してみる。

        VBEの機能の一つです。省略されているものは勝手に解釈する場合があります。

        表示しているシートをSheet2に切り替えて押してみてください。

        Sheet2のA1セルに入力されます。
        表示しているシートのA1セルだと勝手に解釈しています。

        当然プログラム側としてはこれでは困る場合も多いので、
        特定の場所の場合はきちんと省略せずに書いて引く必要があります。


        省略されることを覚えてください。
        オブジェクトの指定方法は次章で説明します。

参照設定

    VBEの機能としても覚えてください。
    ぐぐってコピペしたのにエラーがでる!なんて場合は
    ここの設定が足りない場合があります。

    一例としてよく使う Scripting Runtimeの設定をします。


    ツール>参照設定

    (いっぱいある中から)
    Microsoft Scripting Runtime にチェック。 > OK


    ちょっとした外部機能を使うにはここにチェックが必要くらいに覚えてください。
    また、ここで設定されていると自動補完がきいて入力が楽になります。

マクロブックで保存

    忘れると全部消えます!!!

    Excelの古いバージョンであれば拡張子「xls」だけですみました。
    今は「xlsx」だとマクロなしなので「xlsm」に治して保存しないといけません。


    これはファイル名が変わるということです。
    VBAになれて業務改善ができるようになっても、みんなで使っているファイルだと
    ショートカットが切れて嫌がられるなんて場合もあります。

とにもかくにも書くところまでは以上です。 黒い画面でプログラム書くのはなんとなくかっこいい!!ってことで

続きは次回に。