指定したシートがExcelブックの中にあるか判定したいです。
Indexで判定する方法はあったのですが、シート名で存在しているか判定するにはどのようにしたら良いでしょうか?
よろしくお願いいたします。
ありがとうございます。
C#を使用しており、workbook.Variableが使えないようなのですが、どのように書いたら良いでしょうか?
こんにちは
Workbook型変数を使う場合はクラシックのExcelApplciationScopeが必要です。
別のアプローチとしてはForEachExcelSheetでシート名を一つ一つチェックする。
(エクセルのシート名は大文字小文字を区別しないので、下記では小文字に変換して比較しています。)
あるいは、読み込み系のアクティビティを使った場合、対象シートがないと例外となるので
それを利用してTryCatchで判定する(Catch内で判定フラグの値をセットする)
等が考えられます。
ありがとうございます!
trycatchでシートが無い時のエラー時の対応(メッセージの表示)までできたのですが、メッセージのokを押すとそのまま動いてしまい探していたシートを作成してしまいます。
シートを作成しないで作業を終了させるにはどのようにしたらよろしいでしょうか?
よろしくお願いいたします。
こんにちは
基本的には、Catch内でフラグ変数に値をセットして、
後続で処理を分岐させればよいかと思います。
即終了させたい場合は、TerminateWorkflowアクティビティをCatchの中などで呼ぶ手もあるかもしれません。
ありがとうございます。
下記の図のようにし、tryでシート名を取得、catchでfalseを代入するようにし、if文でthenはセルの値の読み込み→書き込み、elseがエラー時にメッセージがでるという仕組みにしたのですが、セルの値を読み込み→書き込み→エラーメッセージの表示とすべてが行われてしまいます。
どこがおかしいのかわかりません。よろしくお願いいたします
こんにちは
上記だけではわかりませんので、取り急ぎリボンメニューのデバッグタブに、アクティビティをログの
ボタンがありますので、こちらをONにしてデバッグ実行すると
各アクティビティの実行順序がわかりますので、そちらでどのような順番でアクティビティが実行されているかを確認してみはと思います。
あるいはどこかでブレイクポイントを設定して、そこからF11(ステップイン)で一つずつ実行しても良いかと思います。
「全シート取得」で取得してループで回すのではだめなんでしょうか?
C#使えるならループ回さずともindexofとかで判断できそうですが
できました!ありがとうございました。
ループでとるのも挑戦してみます!
ありがとうございました!
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.