• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Powershellのforのコードエラーについて)

PowershellでExcel操作時のエラー解決法

このQ&Aのポイント
  • Powershellを使ってExcelにデータを書き込もうとした際、配列のインデックスエラーが発生する問題について解説します。
  • このエラーは、指定したインデックスが配列の範囲外であることを示しており、適切なデータ構造の理解が必要です。
  • 別のアプリでの成功事例を踏まえ、なぜターミナルからのPowershell操作でエラーが出るのか、その原因を考えます。

質問者が選んだベストアンサー

  • ベストアンサー
  • dell_OK
  • ベストアンサー率13% (776/5751)
回答No.1

$c = for($a=1;$a -le $i;$a++){for($b=0;$b -le $j;$b++){"`$arr[$($a-1),$($b)] = `$array$a[$b]"}}; のこの部分、 for($b=0;$b -le $j;$b++) ここでの $j は 5 です。 なので $b は 0 から始まり 5 以下(-le)の間繰り返されるようになります。 そのため、以下の式を実行しようとします。 $arr[0,0] = $array1[0] $arr[0,1] = $array1[1] $arr[0,2] = $array1[2] $arr[0,3] = $array1[3] $arr[0,4] = $array1[4] $arr[0,5] = $array1[5] ここがエラーになります。 $arr[1,5] = $array2[5] ここも $arr[2,5] = $array3[5] ここも 配列としては 4 までの繰り返しでいいので、 for($b=0;$b -lt $j;$b++) などとして $b が 0 から 5 未満(-lt)の間の繰り返しにするとエラーはなくなると思います。

turu575
質問者

お礼

過去質問後while 文を作るため下記の事柄を見ていたのに全然身になっていないことを痛切に感じました。 PowerShell C# 説明 -eq == 等しい -ne != 等しくない -gt > より大きい -ge >= 以上 -lt < より小さい -le <= 以下 丁寧な御説明有り難うございます。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • dell_OK
  • ベストアンサー率13% (776/5751)
回答No.2

エラーの原因は、 $array1は[0]~[4]までしかないのに、 $array1[5] を使おうとしているためです。

turu575
質問者

お礼

先程過去質問の作り方のを見直している課程で0から始まるので$jでなく$j-1にしないといけないことに付きました。 ご指摘有り難うございます。

すると、全ての回答が全文表示されます。

関連するQ&A