この記事では、ExcelのVBAマクロを使用して整数か少数かを判定する方法について解説していきます。
ポイントとしては
Int関数、Mod演算子を使用すること
です。
なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。
そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。
それでは詳しく見ていきましょう!
エクセルのVBAマクロで整数かどうかを判定する方法【Int関数、Mod演算子】
それでは以下で、VBAマクロを用いてExcelのA列2行目から記載された数値が「整数か否」かを判定する方法を解説します。
以下サンプルの数値の整数判定をしてみます。
以下のサンプルコードを利用することで、各セルに記載された数値が整数かどうかを判定し、その結果をB列の同じ行に記載します。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub SeisuKantei()
Dim sa_hensuu As Long
Dim kekka_hensuu As String
For sa_hensuu = 2 To 100
If Cells(sa_hensuu, 1).Value = Int(Cells(sa_hensuu, 1).Value) Then
kekka_hensuu = "整数"
Else
kekka_hensuu = "非整数"
End If
Cells(sa_hensuu, 2).Value = kekka_hensuu
Next sa_hensuu
End Sub
Alt+F8を押し、マクロ選択画面でSeisuKantei関数を実行します。
これでVBAマクロを用いた整数判定が完了ですね。
A列と綺麗に一致させたい場合は、範囲指定の際に最終行を取得・そこまでの範囲にしておきましょう。
このコードの詳細は以下の通りです。
1. `sa_hensuu`を用いて行を指定しています。
2. Int関数を使ってセルの値とその整数部を比較し、結果を`kekka_hensuu`に格納しています。
3. `kekka_hensuu`の値をB列の同じ行に出力しています。
エクセルのVBAマクロで少数かどうかを判定する方法【Int関数、Mod演算子】
続いて、少数かどうかを判定する方法を見ていきましょう。これも前述した整数の判定と同様ですね。
少し条件式を変更します。
以下のサンプルコードを利用することで、各セルに記載された数値が少数かどうかを判定し、その結果をB列の同じ行に記載します。
Sub SyousuKantei()
Dim sa_hensuu As Long
Dim kekka_hensuu As String
For sa_hensuu = 2 To 100
If Cells(sa_hensuu, 1).Value <> Int(Cells(sa_hensuu, 1).Value) Then
kekka_hensuu = "少数"
Else
kekka_hensuu = "非少数"
End If
Cells(sa_hensuu, 2).Value = kekka_hensuu
Next sa_hensuu
End Sub
このコードでは、少数か、非少数かで判定がB列に出力されます。
A列と綺麗に一致させたい場合は、範囲指定の際に最終行を取得・そこまでの範囲にしておきましょう。
実行結果は以下の通りです。
注意: このコードはセルに数値が入力されていることを前提としており、テキストや空白セルが含まれる場合にはエラーが発生する可能性があります。そのため、エラーハンドリングを追加するとより堅牢なコードになります。
以上でExcelのVBAマクロを用いた整数や少数の判定方法の解説を終えます。この方法を利用することで、エクセル上の数値データを簡単に整数と少数に分類することができます。整数と少数の判定を行う際には、Int関数やMod演算子を活用することで簡単に判定を行うことが可能です。
まとめ VBAマクロで少数の判定(少数かどうかも)方法【】
ここでは、VBAマクロで整数や小数点の判定をする方法を確認しました。
総括として、VBAマクロはExcel作業の効率化に大変有効なツールとなります。
特に数値データの整理や分類作業においては、上記のマクロを使用することで作業時間を大幅に短縮することが可能となります。
初心者の方でも簡単に利用することができるよう、わかりやすい変数名を使用して解説を行いました。この記事を参考に、ぜひVBAマクロの利用を始めてみてください。
また、さまざまな関数や演算子を組み合わせることで、さらに高度な処理も実現可能となりますので、ぜひ挑戦してみてください。