ExcelマクロVBA再入門 | 第9回.関数という便利な道具(VBA関数) | マクロが覚えられないという初心者向けに理屈抜きのやさしい解説



最終更新日:2016-03-29

第9回.関数という便利な道具(VBA関数)


プログラミング言語であるVBAには、多くの人が共通して必要となる機能が用意されています、

この用意されている機能を関数と呼びます、

関数は皆が共通して必要とする機能を盛り込んだ小さなプログラムです。

関数を使わなければできない事も多くありますし、関数を使う事で、長いプログラムを書かなくて済む事になります。


マクロが上達するという要素の一つに、関数を上手に使えるようになるという事があります。

以下は、これだけは知っておきたい関数の一覧です。

関数名 機能
Left 文字列の左端から指定した文字数分の文字列を返します
Right 文字列の右端から指定した文字数分の文字列を返します
Mid 文字列から指定した文字数分の文字列を返します
Len 指定した文字列の文字数または指定した変数に必要なバイト数の値を返します
Replace 指定された文字列の一部を、別の文字列で指定された回数分で置換した文字列を返します
StrConv 指定された変換方式で変換した文字列を返します
InStr ある文字列 (string1) の中から指定した文字列 (string2) を検索し、最初に見つかった文字位置 (先頭からその位置までの文字数) を返します
IsDate 式を日付に変換できるかどうかを調べ、結果をブール型 (Boolean) で返します
IsNumeric 式が数値として評価できるかどうかを調べ、結果をブール型 (Boolean) で返します
Date 現在のシステムの日付の値を返します
DateAdd 指定された時間間隔を加算した日付を返します
DateDiff 2 つの指定した日付の時間間隔の値を返します
DateSerial 引数に指定した年、月、日に対応する日付を返します
Year 年を表すバリアント型 (内部処理形式 Integer の Variant) の値を返します
Month 1 年の何月かを表す値を返します
Day 月の何日かを表す 1〜31 の範囲の整数の値を返します
Format 式を指定した書式に変換し、その文字列を示す値を返します
InputBox 文字列型 (String) の値を返します。ダイアログ ボックスにメッセージとテキスト ボックスを表示し、文字列が入力されるか、またはボタンがクリックされると、テキスト ボックスの内容を返します
MsgBox 整数型 (Integer) の値を返します。ダイアログ ボックスにメッセージを表示し、ボタンがクリックされるのを待って、どのボタンがクリックされたのかを示す値を返します


VBA関数はもっとたくさんあって150個くらいあります。

その中で、とりあえず、このくらい知っていてばなんとかなるという20個を厳選しました。

関数は、いきなり全部覚えようなどと思っても覚えられるものではありませんので、

必要に応じて、都度使える関数を増やしていけば良いです。

ただ、どんな関数があるか知らないと、VBAを書く上での発想がわかないので、ざっとどんな関数があるかだけ見ておくようにして下さい。

関数を自在に使えるという事が、マクロを自在に書けるということでもあります。

練習問題



回答VBAコード



実行結果



解説

Cells(2, 3) = Format(Cells(2, 1), "yyyymmdd")
Format(対象文字数値, 表示書式指定文字)
表示書式指定文字は様々な文字があります。
簡単に調べるには、
セルの書式→表示形式→ユーザー定義
ここでの指定と、ほぼ同様(違う部分があります)なので、これを参考にしてください。

Cells(3, 3) = InStr(Cells(3, 1), "再")
InStr(対象文字, 調べる文字)
シート関数のFIND関数と同じです。

Cells(4, 3) = StrConv(Cells(4, 1), vbKatakana)
StrConv(対象文字, 変換方式)
変換方式は、

vbUpperCase 文字列を大文字に変換します。
vbLowerCase 文字列を小文字に変換します。
vbProperCase 文字列の各単語の先頭の文字を大文字に変換します。
vbWide* 文字列内の半角文字 (1 バイト) を全角文字 (2 バイト) に変換します。
vbNarrow* 文字列内の全角文字 (2 バイト) を半角文字 (1 バイト) に変換します。
vbKatakana** 文字列内のひらがなをカタカナに変換します。
vbHiragana** 文字列内のカタカナをひらがなに変換します。
vbUnicode システムの既定のコード ページを使って文字列を Unicode に変換します。Macintosh. では使用できません)
vbFromUnicode 文字列を Unicode からシステムの既定のコード ページに変換します。Macintosh. では使用できません)


Cells(5, 3) = Replace(Cells(5, 1), "再", "に")
InStr(対象文字, 検索文字, 置換文字)
シート関数のSUBSTITUTE関数と同じです。




同じテーマ「マクロVBA再入門」の記事

第6回.表の先頭から最終行まで繰り返す(ForとEnd(xlUp).Row)
第7回.セルの値によって計算を変える(Ifステートメント)
第8回.表範囲をまとめて消去する(OffsetとClearContents)
第9回.関数という便利な道具(VBA関数)
第10回.ワークシートの関数を使う(WorksheetFunction)
第11回.分からない事はエクセルに聞く(マクロの記録)
第12回.エクセルの言葉を理解する(オブジェクト、プロパティ、メソッド)
第13回.セルのコピペ方法を知る(CopyとPaste、さらに)
第14回.セルの書式を設定する(NumberFormatLocal,Font,Barders,Interior)
第15回.手作業で出来なければマクロは書けない
第16回.エクセルの機能を上手に使う

新着記事 ・・・新着記事一覧を見る

数値範囲で表検索するVLOOKUP近似一致|エクセル関数超技(10月5日)
エクセルVBAでのシート指定方法|VBA技術解説(9月8日)
VBAのクラスとは(Class,Property,Get,Let,Set)|VBA技術解説(8月28日)
VBAこれだけは覚えておきたい必須基本例文10|VBA技術解説(8月22日)
VBAの省略可能な記述について|ExcelマクロVBA技術解説(8月11日)
複数条件判定を行う時のコツ|ExcelマクロVBA技術解説(7月11日)
For Next の使い方いろいろ|VBA技術解説(6月14日)
VBAを定型文で覚えよう|ExcelマクロVBA技術解説(3月26日)
VBAスタンダード試験対策まとめ|MOS VBAエキスパート対策(3月16日)
ユーザーフォームとメニューの操作|MOS VBAエキスパート対策(3月14日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|ExcelマクロVBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.変数とデータ型(Dim)|ExcelマクロVBA入門
5.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
6.マクロって何?VBAって何?|ExcelマクロVBA入門
7.定数と型宣言文字(Const)|ExcelマクロVBA入門
8.繰り返し処理(For Next)|ExcelマクロVBA入門
9.とにかく書いて見よう(Sub,End Sub)|VBA入門
10.ひらがな⇔カタカナの変換|エクセル基本操作



  • >
  • >
  • >
  • 関数という便利な道具(VBA関数)

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。





    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。

    本文下部へ

    ↑ PAGE TOP