質問: i+1 To 100 ということがしたいです。(普通に入れると当然動きませんが・・・) 意味がわからないと思いますが、 つまり、一回目のfor文では○個目の要素までチェックをしたので、二回目のfor文では(○個+1)個目の要素からチェックを開始したいという意味です。 うまい書き方が思い浮かばないので、お願いします。 --- 具体的に使用するのは画像のファイルです。 1列目にAが入っているセルの隣の数値をすべて取得し、3列1行にその和を表示させる。 これをAからEにすべて行いたいです。 その過程で1列目にAという文字が入っているかのチェック ↓ その文字が終了するまで3列1行に足し続ける ↓ 次の文字(B)へ という流れで、前回何行目まで参照したのかを知りたいです。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/ae2b588efde8fd8baff48c76d3eaf5b0.png)
回答: まず、 VBA :VB6系列の旧スタイルBASIC VB.NET :.Netframework 対応の現行BASIC 似て非なるものです。 ' EXCEL-VBA で、あれば、VBE⇒ツール⇒オプション⇒編集タブ:変数の宣言を強制する にチェック 作成済みコードがある場合は、コードの最上行へ、Option Explicit を書き加えてください。 これにより、未定義変数が使用出来なくなり、変数バグ防止になります。 ’ 次に、スコープルールの話です。 変数には、生存期間があります。 その生存期間を定めたルールが、スコープルールです。 >For i As Integer = 0 To 100 > (終了条件を含むコード) >Next この書式に於いては、i の生存期間は、For ~ Next の範囲に限定されます。 よって、 (終了条件を含むコード) に於いて、 別の変数へ、i の値を保存しておかないと、参照できません。 今回の場合は、事前に i , j を定義して使用する方法が、適しているかもしれません。 ’ VBAでは、For i As Integer = 0 To 100 の様な書式は許されていないので、 正しい書式を調べて Office 開発者向けドキュメント https://msdn.microsoft.com/ja-jp/office/aa905340.aspx コードを書きます。 ’ VBA を使う場合は、可能なかぎり、 未定義変数を使わない⇒Variant になるから Variant は、VB.NET ではサポートされません。 ⇒どうしてもの場合は、 バリアント ジェネリック バリアント オブジェクト でググって、発想を変えて対応します。 Windows API 系で使われる Any も使用しない。 C#他を意識する場合は、With ~ 等使わない方が良い物もあります。