概要
本記事ではVBA・マクロについて勉強をしている中で、実用性が高いと感じた機能をご紹介します。
VBA・マクロとは?
・VBA(Visual Basic for Applications) とは、Microsoft Officeアプリケーションの操作を自動化するためのプログラミング言語です。向き不向きの操作はありますが、基本的にはアプリケーション上でのすべての動作を自動化することが可能になります。
・マクロ とは、アプリケーション上での一連の操作を自動化するために記録・作成されたプログラムや機能です。VBAをはじめ様々なプログラミング言語を用いて作成することが可能です。
機能紹介
マクロを活用するうえでVBAの記述をしなくても使用できる便利な機能があります。
・マクロの自動記録 : 手動で操作した動作をすべて記録し自動でマクロ化。
プログラミング不要で、簡単な作業であればこの機能だけで実現できてしまいます。
・ボタン機能 : マクロの実行機能。
自動記録したマクロや記述したマクロをボタンに登録することで、任意のマクロを実行することができます。ボタンのテキストを変更することでどんなマクロか一目でわかるため非常に便利です。

関数紹介
VBAではマクロ作成のため便利な関数がいくつも用意されています。記述例と共にご紹介します。
・MsgBox関数 : メッセージボックスを表示。
指定した定数や変数内のデータを出力することができます。プログラミング途中にデータ内容の確認をするなど、活用できる場面が多いです。
記述例
    MsgBox "Hello"
・InputBox関数 : 入力ボックスを表示。
ボックスに入力した値を変数に代入できます。マクロの実行者や日付を入力し、処理のエビデンスを残すことができます。
記述例
    Dim name As String
    name = InputBox("名前を入力してください", "Title")
・Len関数 : 値の文字数を取得。
指定データから文字数を取得できます。下記のようにアドレスの文字数をカウントしたり、参照するデータの金額が何桁なのかなど、後続する処理に対して有効な関数となります。
記述例
    MsgBox Len("abcdefghijk@qiita.jp")
・Replace関数 : 任意の文字列を置換。
文字列を置換("文字列A"⇒"文字列B"のように)する関数です。また、置換後の文字列を空白("")とすることで、文字列を削除するような動作も可能な便利な関数となっています。
記述例(アドレスからドメインの削除)
        Dim adr As String
        adr = "abcdefghijk@qiita.jp"
        MsgBox Replace(adr, "@qiita.jp", "")
・Date関数(日付)、Now関数(日時) : 現在の日付、日時を取得。
処理がされた現在の日付、日時を取得できます。前述したInputBox関数へ手入力せずともエビデンスを残せます。
記述例(Date関数)
    Dim day As String
    day = Date
    MsgBox day
記述例(Now関数)
    Dim time As String
    time = now
    MsgBox time
・Format関数 : データ表示形式の変更。
前述した関数で取得した日付(yyyy/mm/dd)などの形式を指定した形式へ変更できます。取得したデータの形式により、変更できる形式も多岐にわたります。
記述例(yyyy/mm/dd ⇒ yyyy年mm月dd日)
    Dim day As String
    day = Date
    day = Format(Date, "yyyy年mm月dd日")
    MsgBox day
おわりに
いかがでしたでしょうか。いくつかの機能や関数をご紹介しました。マクロでは様々な関数を組み合わせることで実現できる機能の幅が広がります。是非、皆さんの業務でもご活用ください。









