質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

1804閲覧

VB? 前回のFor文で使ったiを次のFor文で使いたいとき

_LAGRANGE_

総合スコア44

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2016/04/07 07:13

For i As Integer = 0 To 100
(終了条件を含むコード)
Next

というFor文があるとき、i = 何回目で終了したのかを取得し、次のFor文を作るときに、

For j As Integer = i+1 To 100

ということがしたいです。(普通に入れると当然動きませんが・・・)

意味がわからないと思いますが、

つまり、一回目のfor文では○個目の要素までチェックをしたので、二回目のfor文では(○個+1)個目の要素からチェックを開始したいという意味です。

うまい書き方が思い浮かばないので、お願いします。


具体的に使用するのは画像のファイルです。
1列目にAが入っているセルの隣の数値をすべて取得し、3列1行にその和を表示させる。
これをAからEにすべて行いたいです。

その過程で1列目にAという文字が入っているかのチェック

その文字が終了するまで3列1行に足し続ける

次の文字(B)へ

という流れで、前回何行目まで参照したのかを知りたいです。

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

まず、
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 ~ 等使わない方が良い物もあります。

投稿2016/04/07 07:29

編集2016/04/07 07:41
daive

総合スコア2028

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

_LAGRANGE_

2016/04/07 07:45

スコープルール、初めて聞きました。 ほかの変数を宣言して置き換えてみます。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問