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関数と同じです。




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

第8回.表範囲をまとめて消去する(OffsetとClearContents)
第10回.ワークシートの関数を使う(WorksheetFunction)
第11回.分からない事はエクセルに聞く(マクロの記録)
第12回.エクセルの言葉を理解する(オブジェクト、プロパティ、メソッド)
第13回.セルのコピペ方法を知る(CopyとPaste、さらに)
第14回.セルの書式を設定する(NumberFormatLocal,Font,Barders,Interior)
第15回.手作業で出来なければマクロは書けない

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

データクレンジングと名寄せ|ExcelマクロVBA技術解説(10月20日)
SUMIFの間違いによるパフォーマンスの低下について|エクセル関数超技(6月17日)
条件式のいろいろな書き方:TrueとFalseの判定とは|ExcelマクロVBA技術解説(6月15日)
空白セルを正しく判定する方法2|ExcelマクロVBA技術解説(5月6日)
フルパスをディレクトリ、ファイル名、拡張子に分ける|ExcelマクロVBA技術解説(4月15日)
テキストボックスの各種イベント|Excelユーザーフォーム入門(4月9日)
フォルダ(サブフォルダも全て)削除する、Optionでファイルのみ削除|ExcelマクロVBAサンプル集(4月4日)
最後の空白(や指定文字)以降の文字を取り出す|エクセル関数超技(3月26日)
先頭の数値、最後の数値を取り出す|エクセル関数超技(3月26日)
Excelファイルを開かずにシート名をチェック|ExcelマクロVBAサンプル集(3月23日)

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

1.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
2.RangeとCellsの使い方|ExcelマクロVBA入門
3.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
4.変数とデータ型(Dim)|ExcelマクロVBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
6.定数と型宣言文字(Const)|ExcelマクロVBA入門
7.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
8.マクロって何?VBAって何?|ExcelマクロVBA入門
9.CSVの読み込み方法|ExcelマクロVBAサンプル集
10.ひらがな⇔カタカナの変換|エクセル基本操作



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

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


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

    ↑ PAGE TOP