Splitで「インデックスが配列の境界外」エラーについて

やりたいこと

Excelで
A1 概要
A2 日時:10/30
A3 場所:弊社
A4 人数:2名

このようなデータがあり、A2以降のセルを「:」で分割して後ろを取得したいです

試したこと

「列の範囲を取得」アクティビティで列名”概要”を指定しobject型変数colへ格納
「繰り返し(コレクションの各要素)」で コレクションにcolを指定
「一行を書き込み」 item.ToString.Split(":".ToCharArray)(1)
⇒こちらで表題のエラーが出現します。インデックスを(0)にした時は:より前の文字列が取得できます。

item.ToString ⇒「日時:10/30」を取得
item.ToString.Split(":".ToCharArray)(0) ⇒「日時」を取得
item.ToString.Split(":".ToCharArray)(1) ⇒エラー

(1)でエラーになってしまう理由や、取得方法が分かる方ご教示ください。

こんにちは

内容的には正常動作してもよさそうな感じですが、例えばコロンの全角半角が一致していないとか
そのあたりはいかがでしょうか?

あるいはxamlファイルの添付やスクリーンショットの添付等をいただいた方が良いかもしれません。

ここについては、一致するように元データをコピペしているので一致していると思います。
また、他の行についても同じコロンが使われるようにすべてコピペしております。

スクリーンショットを添付致します。

こんにちは

ありがとうございます。
次のステップとして、この一行書き込みアクティビティにブレークポイントを設定した上で、
デバッグ実行をした時の item の中身をLocalsパネルで確認してみてはいかがでしょうか?

原因がわかりました。
列名”概要”がitemの一つ目のコレクションになっていました。
出力パネルで見ていた時はスルーしてしまっていて気づきませんでしたが、ブレイクポイントをつけたことでわかりました!

誠にありがとうございます。

1 Like

安牌としては、対象項目にわざと区切り文字を付加してから.splitするのです…そもそも有れば、(1)は取れますし、無ければ(1)は空白になるはずですね…

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.