本記事は、Excel C# Script入門講座の1記事です。
goto
無条件に処理を分岐させたい場合には、goto ステートメントを使用することができます。ただし、gotoステートメントを多用するとプログラムが分かりにくくなるので積極的には使わない方が良いでしょう。
例えば以下のように使います。
LABEL: // ジャンプ先を示すラベル var x = 1; goto LABEL; //※このサンプルコードは無限ループします
goto ステートメントの使いドコロの1つとしては、階層の深い入れ子のループから抜ける際に使います。
for(var i = 1; i < 100; i++) { for(var j = 1; j < 100; j++) { if( i > 50 && i == j ) { goto EXITLOOP; } } } EXITLOOP:
goto case
また、goto は switch ステートメントの特定の switch-case ラベルまたは default ラベルに制御を移動するのに使用することができます。
var n = Excel.ActiveWorkbook.ActiveSheet.Range("A1").Value; var cost = 0; switch (n) { case 1: cost += 25; break; case 2: cost += 25; goto case 1; case 3: cost += 50; goto case 1; default: break; } Excel.ActiveWorkbook.ActiveSheet.Range("A2").Value = cost;