VBA入門
VBA関数(その他,Fix,Int,Rnd,Round,IsEmpty)

ExcelマクロVBAの基本と応用、エクセルVBAの初級・初心者向け解説
公開日:2013年5月以前 最終更新日:2021-09-10

第48回.VBA関数(その他,Fix,Int,Rnd,Round,IsEmpty)


VBA関数の中で、日付関数、文字列操作関数以外でマクロVBAにおいてはぜひ覚えておいてほしい関数の一覧です。
数学、データ型確認、データ型変換に関するVBA関数になります。
一覧と、その中から注意点のある関数についてのみ一部説明します。


全てのVBA関数一覧は、VBA関数一覧
マクロVBA関数の一覧と解説です、どんな関数があるかは一度は確認しておくとをお勧めいたします。どんな関数があるだけでも知っておけば、詳細の使い方は実際に使うときに調べても良いでしょう。文字列操作…34 分岐…3 型変換…14 データ判定…10 日付時刻…20 配列…6 ファイル操作…14 数学/財務…28 その他……
以下の一覧のリンクは、VBA関数一覧の別ページが開きます。


数学VBA関数の一覧

関数 説明
Fix 指定した数値の整数部分を返します。負の場合、その数値以下の最大の値を返します。
Int 指定した数値の整数部分を返します。負の場合、その数値以上の最小の値を返します。
Rnd 単精度浮動小数点数型 (Single) の乱数を返します。
Round 指定された小数点位置で丸めた数値を返します。

詳細については、一覧のリンクより解説ページをご覧ください。

Fix関数、Int関数

正数値の場合は、同じ結果となりますが、負数値の場合に違いが発生します。

Int(-99.2) → -100
Fix(-99.2) → -99


Rnd関数

システム タイマーから取得した新しいシード値を使って、乱数ジェネレータを初期化するには、
Rnd 関数を呼び出す前に、引数を指定せずに Randomizeステートメントを実行してください。

任意の範囲の整数の乱数を生成するには、次の式を使ってください。

Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

この式では、変数 upperbound には範囲の上限の値を指定し、
変数lowerbound には範囲の下限の値を指定します。

Randomizeステートメントについて
Randomizeステートメントは、乱数ジェネレーターを初期化します。
Randomize [ number ]
numberを使用して、Rnd関数の乱数ジェネレーターを初期化します。
numberを省略すると、システムタイマーから返される値が新しいシード値として使用されます。
Randomizeを使用しないと、Rnd関数 (引数なし) は、最初に呼び出されたときと同じ数値をシードとして使用して、その後は最後に生成された数値をシード値として使用します。

Round関数

ワークシートのROUND関数は、四捨五入ですが、
VBAのRound関数は丸め(銀行型丸め、最近接偶数丸め)になります。
エクセルの関数で、ROUNDは四捨五入です。しかし、VBAでのRoundは、銀行型丸め(最近接偶数への丸め)で、Accessも銀行型丸めとなっています。四捨五入では、どうしても大きくなる傾向があるようです。

ワークシート
ROUND関数
VBA
Round関数
1.4 1 1
1.5 2 2
1.6 2 2
2.4 2 2
2.5 3 2
2.6 3 3


データ型確認のVBA関数一覧

関数 説明
IsArray 変数が配列であるかどうかを調べ、結果をブール型 (Boolean) で返します。
IsDate 式を日付に変換できるかどうかを調べ、結果をブール型 (Boolean) で返します。
IsEmpty 変数が Empty 値かどうかを調べ、結果をブール型 (Boolean) で返します。
IsError 式がエラー値かどうかを調べ、結果をブール型 (Boolean) で返します。
IsMissing プロシージャに省略可能なバリアント型 (Variant) の引数が渡されたかどうかを調べ、結果をブール型 (Boolean) で返します。
IsNull 式に Null 値が含まれているかどうかを調べ、結果をブール型 (Boolean) で返します。
IsNumeric 式が数値として評価できるかどうかを調べ、結果をブール型 (Boolean) で返します。
IsObject 識別子がオブジェクト変数を表しているかどうかを示すブール型 (Boolean) の値を返します。

詳細については、一覧のリンクより解説ページをご覧ください。

IsEmpty関数

A1セル:"=B1 & C1"
B1セル:""
C1セル:""
この場合、
If Range("A1") = "" ・・・ 真(True)
If IsEmpty("A1") ・・・ 偽(False)
となりますので、使い分けして下さい。

空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)
・セルの値が空白の判定 ・計算式が入っていない判定 ・エラー値の判定 ・IsEmpty関数:空白を判定するVBA関数 ・TypeName関数:データ型を判定するVBA関数 ・RangeオブジェクトのFormulaプロパティ ・空白セルを正しく判定する方法続編


データ型変換のVBA関数一覧

関数 説明
CBool ブール型 (Boolean)のデータ型に変換します。
CByte バイト型 (Byte)のデータ型に変換します。
CCur 通貨型 (Currency)のデータ型に変換します
CDate 日付型 (Date)のデータ型に変換します。任意の有効な日付
CDbl 倍精度浮動小数点数型 (Double)のデータ型に変換します。
CDec 10進型 (Decimal)のデータ型に変換します
CInt 整数型 (Integer)のデータ型に変換します。
CLng 長整数型 (Long)のデータ型に変換します。
CLngLng LongLong型に変換します。
CLngPtr LongPtr型に変換します。
CSng 単精度浮動小数点数型 (Single)のデータ型に変換します。
CStr 文字列型 (String)のデータ型に変換します。
CVar バリアント型 (Variant)のデータ型に変換します。
CVerr 指定した数値(エラー番号)を、バリアント型のエラー値に変換します。

詳細については、一覧のリンクより解説ページをご覧ください。

型変換関数の注意点

引数のデータが、データ型変換出来ない場合はエラーが発生します。
事前に対応する、データ型確認のIs○○関数で確認するか、
エラー処理ルーチンを有効にする必要があります。
第60回.エラー処理(On Error)
・マクロVBAのエラー発生例 ・エラー処理のステートメント ・実行時エラー関連記事
第61回.「On Error GoTo」と「Exit Sub」
・On Error GoTo 行ラベル ・Exit Sub ・On Error の有効範囲とその動作について ・最後に
第62回.「On Error Resume Next」とErrオブジェクト
・On Error Resume Next ・Errオブジェクト ・On Error Resume Next の使用例 ・「On Error Resume Next」の最後に

マクロVBAでは自動型変換が行われるので、使用頻度はそんなに多くはないかもしれません。
しかし、データ型の不一致によるマクロVBAの不具合も時に発生しますので、使えるようにはしておいてください。




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

第45回.VBA関数(Format)

・Format関数 ・日付/時刻表示書式指定文字 ・数値表示書式指定文字 ・文字列表示書式指定文字 ・Format関数の使用例 ・※セルに出力する場合 ・最後に
第46回.VBA関数(日付,DateAdd)
・日付時刻に関するVBA関数の一覧 ・DateAdd関数の構文 ・DateAdd関数の使用例
第47回.VBA関数(文字列操作,Replace,InStr,StrConv)
・文字列操作に関するVBA関数の一覧 ・Replace関数 ・InStr関数 ・StrConv関数 ・最後に
第48回.VBA関数(その他,Fix,Int,Rnd,Round,IsEmpty)
第49回.Like演算子とワイルドカード
・Like演算子 ・パターン文字列式(ワイルドカード、文字リスト、文字範囲) ・Like演算子の使用例 ・正規表現について
第50回.総合練習問題6
・マクロVBA練習問題 ・シンキングタイム ・マクロVBA練習問題解答へ
第87回.WorksheetFunction(ワークシート関数を使う)
・ワークシート関数の使い方 ・WorksheetFunctionで使用できる関数 ・個別の関数の使い方 ・関数の結果(戻り値) ・WorksheetFunctionの使用例. ・検索系の関数での日付の扱い ・WorksheetFunctionのエラー対処 ・最後に
第51回.Withステートメント
・Withの構文 ・Withを使った時と使わない時の比較 ・Withの使用例 ・Withのネスト ・Withを使ったときに気を付けるべき書き方 ・Withの使いどころ ・サイト内の参考ページ
第52回.オブジェクト変数とSetステートメント
・オブジェクト変数 ・個有のオブジェクト型とは ・Setステートメント ・Setステートメントの使用例 ・WithとSetの使い分け方 ・Setステートメントの実践的な使い方 ・Is演算子によるオブジェクトの比較 ・最後に
第53回.Workbookオブジェクト
・WorkBookの指定方法 ・WorkBookのデータ型 ・WorkBookのプロパティとメソッド ・Workbookオブジェクトの使用例 ・プロパティとメソッドの違い
第54回.Windowsオブジェクト
・Windowの指定方法 ・Windowオブジェクトデータ型 ・Windowオブジェクトのプロパティとメソッド ・Windowオブジェクトの解説 ・Windowオブジェクトの使用例 ・アクティブシート以外のWindowの設定


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

ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
複数の文字列を検索して置換するSUBSTITUTE|エクセル入門(2024-01-03)
いくつかの数式の計算中にリソース不足になりました。|エクセル雑感(2023-12-28)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|VBA入門
4.ひらがな⇔カタカナの変換|エクセル基本操作
5.繰り返し処理(For Next)|VBA入門
6.変数宣言のDimとデータ型|VBA入門
7.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
8.並べ替え(Sort)|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.Findメソッド(Find,FindNext,FindPrevious)|VBA入門




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


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


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