変数を使った後で値を設定する理由

長文失礼します。

UiPath Studio Community Editionユーザです。

INPUT.xlsxを開いて、1行ずつデータを読み込み、複数のアプリを連続実行し、Webに表示された結果をOUTPUT.xlsxに書き込むワークフローを解析しています。
アプリの数は決まっていませんが、INPUT.xlsxを開いて、1行ずつデータを読み込み、Webに入力/出力し、Webに表示された結果をOUTPUT.xlsxに出力するのは共通です。
INPUT.xlsxとOUTPUT.xlsxは、同じフォーマットです。(添付画像参照)

今回は、INPUT.xlsxから身長と体重を取得し、WebサイトでBMI計算を行い、BMIと肥満度をOUTPUT.xlsxに書き込むアプリと、
2都市間を出発する時間と到着する時間をWebサイトに入力し、飛行時間をWebサイトから取得、OUTPUT.xlsxに書き込むアプリを連続実行するワークフローを作成してみました。

解析中に不明点が出てきたので分かる方、アドバイスをお願いします。
ーーーーーーーーーーーーーーーーーーーーー

ワークフローの流れをざっくり説明すると以下の通りです。

1.最初にINPUT.xlsxファイルをOUTPUT.xlsxに全コピーした後、ワークフロー実行結果情報であるINPUT.xlsxのA列からD列まで(列名で言うと、Test Case Number Status Execution Date Error Messeage)を後から再度OUTPUT.xlsxにコピーする。

2.arobjインプットデータカラム=dtインプットデータ.Rows(0).ItemArray

これで、INPUT.xlsxの2行目(Test Case Number、Status、Execution Date、、、が記入されている行です)
をまるごと変数arobjインプットデータカラムに代入します。(※インデックス番号がずれていますが気にしないでください)

3.strシート名=dtインプットデータ(1)(“Column0”).ToString

これで、変数strシート名に、INPUT.xlsxの1行目1列目の文字列"Test Case Number,RPA Execution Result,BMI計算など)を代入します。
※なぜかダミー行がいちばん上に挿入されるため、dtインプットデータ(0)ではなくdtインプットデータ(1)となります。

4.次に、繰り返し (コレクションの各要素)アクティビティで、INPUT.xlsxの列の数分繰り返します。

繰り返し 次のコレクション内の各要素 index:intindex
item arobjインプットデータカラム
条件分岐
Not String.IsNullOrEmpty(item.ToString) And intIndex<>0 OrElse intIndex=arobjインプットデータカラム.Count-1

INPUT.xlsxのデータがNullやEmptyであったり、最初のTest Case Numberであったり、最後のデータの次の列のデータはskipしているようです。

繰り返し (コレクションの各要素)アクティビティの条件分岐のThenで実行している処理は以下の通りです。

1.int列番号_Endとstr列番号_Endの初期値を設定します。

int列番号_EndとはINPUT.xlsxの1行でデータが存在する最終列の列番号(1,2,3,4,)です。
str列番号_EndとはINPUT.xlsxの1行でデータが存在する最終列の列名(A,B,C,D,)です。

※後で、INPUT.xlsxの1行の列を順番に読み込む際に、R1C1形式の最終列の列番号を使い、INPUT.xlsxのデータ記入エリアを範囲で読み込む際にA1形式で
読み込んでいるため、R1C1形式とA1形式の相互変換をやっているようです。

条件分岐 繰り返しの最後か?
条件:intIndex=arobjインプットデータカラム.Count-1
Then
int列番号_End=intIndex+1
Else
int列番号_End=intIndex

代入:str列番号_End=“”

2.繰り返し(後判定)アクティビティで、対象の1行の最後の列をアルファベットで取得します。

代入:int列番号_End=int列番号_End-1
代入:str列番号_End=Chr(int列番号_End Mod 26+65)&str列番号_End
代入:int列番号_End=int列番号_End \ 26
条件 int列番号_End>0

3.ExcelアプリケーションスコープでINPUT.xlsxのデータ記入済みエリアを読み出します。

Excelアプリケーションスコープ
開くファイル:strインプットファイルパス
範囲を読み込み
“input” str列番号_Start+“2:”+str列番号_End+int最終行.ToString
TO:dtインプットデータ_カラム

4.条件分岐アクティビティで、strシート名<>“Test Case Number” AndAlso strシート名<>"RPA Execution Resultの場合のみ、Thenの処理を実行します。
アプリ単位で別々のシートを作成して、OUTPUT.xlsxに挿入します。

Excel プロセス スコープ
Excel ファイルを使用:strRPA実行結果ファイルパス
参照名:Excel
変更を保存をチェック
存在しない場合ファイルを作成をチェック

セルを書式設定					
ソース:	Excel.Sheet(strシート名)				
データの書式設定の種類:書式設定					

Delay 1秒

Excelアプリケーションスコープ
strRPA実行結果ファイルパス

範囲に書き込み					
strシート名		"A1"			
FROM:dtインプットデータ_TestCaseNumber					
					
範囲に書き込み					
strシート名		"B1"			
FROM:dtインプットデータ_カラム					

5.int列番号_Startとstr列番号_Startの初期値を設定します。

int列番号_StartとはINPUT.xlsxの1行でデータが存在する最初の列番号(1,2,3,4,)です。
str列番号_StartとはINPUT.xlsxの1行でデータが存在する最初の列名(A,B,C,D,)です。

int列番号_Start=intIndex+1
str列番号_Start=“”

6.繰り返し(後判定)アクティビティで、対象の1行の最初の列をアルファベットで取得します。

代入:int列番号_Start=int列番号_Start-1
代入:str列番号_Start=Chr(int列番号_Start Mod 26+65) & str列番号_Start
代入:int列番号_Start=int列番号_Start \ 26

条件
int列番号_Start>0

7.長すぎるとExcelシートにシート名を記入できないためシート名をitemの左から31文字列取り出します。
strシート名=left(item.ToString,31)

ーーーーーーーーーーーーーーー
以上が、長くなりましたがワークフローの説明です。
ここで1点疑問が湧きました。

変数strシート名は、4.で使われているにも関わらず、どうして、7.で値が設定されているのでしょうか。

理由が分かる方、教えてください。