第10回.条件で処理を変える(条件分岐,if)
セルの値等の条件により処理内容を変更する条件分岐です。
条件分岐しながら繰り返し処理を行うものです。
条件分岐(if)の例題
やることは、
F列特待生:合計が240以上で、3科目全て70以上なら"○"、以外は"×"
G列クラス:合計点が250以上なら"A"、230以上なら"B"、210以上なら"C"
新しい文は、ifとelseだけです。
elseは、その他
完成コード
function sample11_1() {
var sheet = SpreadsheetApp.getActiveSheet()
var lastRow,total
lastRow = sheet.getLastRow()
for (var i=2; i<=lastRow; i++) {
total = sheet.getRange(i, 4).getValue()
if (total >= 210) {
sheet.getRange(i, 5).setValue("○")
}
else {
sheet.getRange(i, 5).setValue("×")
}
}
}
条件式を、
< 210
とすれば、○×が逆になります。
function sample11_2() {
var sheet = SpreadsheetApp.getActiveSheet()
var lastRow,total,jpn,eng,mat
lastRow = sheet.getLastRow()
for (var i=2; i<=lastRow; i++) {
jpn = sheet.getRange(i, 1).getValue()
eng = sheet.getRange(i, 2).getValue()
mat = sheet.getRange(i, 3).getValue()
total = sheet.getRange(i, 4).getValue()
sheet.getRange(i, 6).setValue("")
if (total >= 240) {
if (jpn >= 70 &&
eng >= 70 &&
mat >= 70) {
sheet.getRange(i, 6).setValue("○")
}
}
}
}
sheet.getRange(i, 6).setValue("")
これで、先にF列を消去しています。
これが無い場合は、
二つのifに、それぞれelseを書き、そこで消去する必要が出てきます。
function sample11_3() {
var sheet = SpreadsheetApp.getActiveSheet()
var lastRow,total
lastRow = sheet.getLastRow()
for (var i=2; i<=lastRow; i++) {
total = sheet.getRange(i, 4).getValue()
if (total >= 250) {
sheet.getRange(i, 7).setValue("A")
} else if (total >= 230) {
sheet.getRange(i, 7).setValue("B")
} else if (total >= 210) {
sheet.getRange(i, 7).setValue("C")
} else {
sheet.getRange(i, 7).setValue("")
}
}
}
つまり、ここでは、210未満は不合格なので空欄にしています。
if...else文の説明
ステートメント1
}
ステートメントは、複数行書くこともできます。
ステートメント1
} else {
ステートメント2
}
条件を満たしていないとき、つまり条件がfalseの時、ステートメント2を実行
ステートメントは、複数行書くこともできます、また、省略することもできます。
ステートメント1
} else if (条件2) {
ステートメント2
・・・
} else {
ステートメント3
}
上記以外の時で、
条件2を満たしているとき、つまり条件2がtrueの時、ステートメント2を実行
・・・同様に、条件を複数件設定できます。
上記以外の時、ステートメント3を実行
ステートメントは、複数行書くこともできます、また、省略することもできます。
比較演算子
演算子 | 説明 | 詳細 |
== | 等しい | 被演算子が等しい場合に true を返します。 |
!= | 等しくない | 被演算子が等しくない場合に true を返します。 |
=== | 厳密に等しい | 被演算子が等しく、かつ同じ型である場合に true を返します。 |
!== | 厳密に等しくない | 被演算子が等しくなく、かつ/または同じ型でない場合に true を返します。 |
> | より大きい | 左の被演算子が右の被演算子よりも大きい場合に true を返します。 |
>= | 以上 | 左の被演算子が右の被演算子以上である場合に true を返します。 |
< | より小さい? | 左の被演算子が右の被演算子よりも小さい場合に true を返します。 |
<= | 以下 | 左の被演算子が右の被演算子以下である場合に true を返します。 |
===と!==について
===は二つのオペランドが等しいことを検査し、論理値で結果を返します。
等価演算子とは異なり、厳密等価演算子はオペランドの型が異なる場合、常に異なるものと判断します。
論理演算子
演算子 | 使用法 | 説明 |
&& | expr1 && expr2 | 論理積 (AND) expr1をfalseと見ることができる場合は、expr1を返します。 そうでない場合はexpr2を返します。 両被演算子がtrueであれば&&はtrueを返し、そうでなければfalseを返します。 |
|| | expr1 || expr2 | 論理和 (OR) expr1をtrueと見ることができる場合は、expr1を返します。 そうでない場合はexpr2を返します。 どちらかの被演算子がtrueであれば||はtrueを返し、両方ともfalseであればfalseを返します。 |
! | !expr | 論理否定 (NOT) 単一の被演算子をtrueと見ることができる場合は、falseを返します。 そうでない場合はtrueを返します。 |
ビット演算子
演算子 | 使用法 | 説明 |
& | a & b | ビット論理積(AND) 被演算子の対応するビットがともに 1 である各ビットについて 1 を返します。 |
| | a | b | ビット論理和(OR) 被演算子の対応するビットがともに 0 である各ビットについて 0 を返します。 |
これらは使う必要になった時に思い出せれば当面は良いと思います。
こういうものがあるというこだけ覚えておいてください。
まずは、論理演算子だけ覚えておきましょう。
条件分岐(if)の最後に
ifこそ、プログラミングの基本中の基本です。
同じテーマ「Google Apps Script入門」の記事
第7回.同じ計算を行数分繰り返す
第8回.最終行を取得して繰り返す
第9回.コメントの書き方
第10回.条件で処理を変える(条件分岐,if)
第11回.条件で処理を変える(条件分岐,switch)
第12回.表範囲をまとめて消去する
第13回.セルに書式を設定する
第14回.複数のシートを扱う
第15回.複数のスプレッドシートを扱う
第16回.Google Apps Scriptの文法
第17回.JavaScript リファレンス
新着記事NEW ・・・新着記事一覧を見る
TRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)
エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)
ブール型(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)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.RangeとCellsの使い方|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.セルのクリア(Clear,ClearContents)|VBA入門
8.メッセージボックス(MsgBox関数)|VBA入門
9.条件分岐(Select Case)|VBA入門
10.ブック・シートの選択(Select,Activate)|VBA入門
- ホーム
- その他
- Google Apps Script入門
- 条件で処理を変える(条件分岐,if)
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。