0以下は0に、その他はそのままにする
まずは、ワークシート関数でやってみます。
IF関数を使います。
たとえば、
A1-B1の計算をして
その答えを0以下は0に、その他はそのままにするには
=IF(A1-B1<0,0,A1-B1)
とセルに入力します。
もしA1-B1が0より小さいなら値を0に、
そうでないなら値をA1-B1にする働きをします。
下のシートの画像のA列、B列には
=RAND()
で乱数をいれています。
C列の1行目は
=A1-B1
D列の1行目が
=IF(A1-B1<0,0,A1-B1)
になっています。
C列、D列は2行目以降オートフィルで入力。
以上の内容をVBAでやります。
コードはこちら
Sub macro110129a() 'A列、B列 |
次はワークシート関数を使わない方法です。
if文で条件分岐すればいいのですが、
単純な条件でifを使って
コードが長くなるのも見にくいので
なにかいい関数はないかと
VBAのヘルプで関数を調べてみたら
Switch関数が見つかったのでそれを使います。
Switch関数の使い方の簡単な説明:
Switch(式1, 値1, 式2, 値2, 式3, 値3, ・・・)
式を順に評価していき
最初に真(True)になる式に関連付けられた値(式1なら値1)を返す。
ほぼIf文の代わりに使えそうです。
コードはこちら
Sub macro110129b() 'A列、B列に乱数 |
今までは計算しながら条件判断、入力をしていましたが、
次は既にある値を条件判断し値を変更します。
For Each Nextを使って指定範囲内のセルをまわして
If文で条件分岐して値を変更します。
コードはこちら
Sub macro110129c() Dim i As Integer, j As Integer |
実行例
Switch関数はいろいろ使えそうですね。
| 固定リンク
この記事へのコメントは終了しました。

コメント