デバッグとは、プログラム内の不具合の原因を推測・特定し、プログラムが正しく動作するように修正する作業のことをいいます。
一般的なプログラミングでも最初は作成したプログラムが意図したとおりに動作しないことが多いです。
そのようなときは、以下のような方法で不具合の原因を特定します。
エラーメッセージから推測
多くのプログラムの場合、実行結果として原因を直接的・間接的に記載した「エラーメッセージ」が表示されます。その「エラーメッセージ」を読んで原因となる箇所を推測します。
設定漏れ・順番などの見直し
設定に漏れがないか?意図した順番になっているか?など1つ1つの処理を見直します。
処理を小分けにしてエラー箇所を特定
すべてのプログラムを一度に実行せず、小さい処理に分けて実行し、どこまでの処理であれば正常に動作しているか?を少しずつ確認していきます。
Coopelにおいても、すべてがうまくいくシナリオを一回で完成させることは難しいです。
Coopelにもエラーが起きた際にデバッグの助けとなる機能が用意されています。それらの機能を利用しながら、原因を特定しシナリオを作成していきます。
シナリオに発生する問題には、2つのケースがあります。
ここでは、チュートリアルのレッスン4で作成するシナリオを例に、この2つのケースのデバッグ方法を見てみましょう。
シナリオを実行してエラーが発生すると、該当するアクションにアイコンが表示されます。
エラーが発生したアクション以降は実行されていない状態です。
アイコンが表示されたアクションをクリックすると、エラー内容が表示されます(①)。特にエラーメッセージ(②)は、エラーの原因を推測する手掛かりになります。
ここでは「sheet not found. sheetName: シート01」というエラーメッセージから、スプレッドシートのシート名に関連する不具合と推測できます。
そこで[シートをシート名で指定]アクションの設定と実際のスプレッドシートを確認します。
以下のように[シート名]プロパティに設定しているシート名(①)と実際のシート名(②)が異なっていることがわかりました。
[シート名]プロパティで正しいシート名に修正し、再度シナリオを実行します。
前回表示されていたアイコンが消えて、すべてのアクションが正常に実行されていればエラーは解消されました。
Coopelの画面上ではすべてのアクションが正常に実行されているが、期待した結果が得られない場合があります。
その場合は、以下の項目を確認します。
チュートリアルのレッスン4で、以下のようなシナリオを作成したと仮定して見ていきましょう。
一見すると問題はなさそうですが、シナリオ実行後のスプレッドシートが以下のような結果になっていました。
期待する結果は、C列の「Yes」と同じ行に検索結果が入力されるはずでしたので、原因を特定しシナリオを修正する必要があります。
この場合、セルの入力位置が間違っているのではと推測されるので、まずは[セルをペースト]アクションの設定を確認します。
確認したところ[セルをペースト]アクションの設定は、レッスン4のステップ19と同じ内容でした。
では次に、根本的なところが原因ではないかと推測し、アクションが意図した順番で配置されているかを確認します。
確認すると、[カウンター]アクション(①)の位置がレッスン4の完成シナリオとは異なっていることがわかりました。レッスン4の「[カウンター]アクションを配置/設定する」で配置位置と設定内容を見直すと、初期値(②)に「1」が設定されていないこともわかりました。
①と②を修正し、再度シナリオを実行します。意図した結果になれば成功です。
今回のケース2では、設定値の間違いと配置順が原因でしたが、ケース1のように関連ファイルの設定を確認することも必要です。
このように、デバッグという作業はさまざまな角度から原因を推測して特定していく必要があります。
シナリオによっては、以下のように実行対象のアクションを小分けに指定して原因を特定することもできます。
※実行対象を指定する方法については「シナリオを部分実行する」を参照してください。
エラーの内容によっては、サポートに問い合わせないとわからないこともあります。その場合はCoopelのサポートセンターにお問い合わせをお願いします。