プロが教える店舗&オフィスのセキュリティ対策術

VBA初心者です。よろしくお願いします。
いま、VBAを勉強しています。

有名なT氏のエクセルVBAに関するサイト(オフィスT・・)の、「高速化テクニック」のところで、下記、★ ★ ★以下のような例がありました。

「Cells(j, 1).Font.FontStyle = "太字"」
が目的の作業であるならば、 「Dim i As Integer」「For i = 1 To 100」を何のために宣言し、記述しているのでしょうか?「j」の変数の宣言は「Cells(j, 1).・・・」で理解できますが、「i」の宣言また、「For i = 1 To 100」は不要のように思われるのです。

最初は何かの間違いかと思っていましたが、同氏の他の解説にも同様の記述がありましたので、きっと、意味があるのですね。教えてください。

★ ★ ★
Sub Test2()
Dim i As Integer, j As Integer
For i = 1 To 100
For j = 1 To 10
Cells(j, 1).Font.FontStyle = "太字"
Next j
Next i
End Sub

A 回答 (2件)

単に、1回実行するだけだと時間差が小さすぎるので、iのループで100回繰り返しベンチマークしている模様。


検索して見つかったページですと、そんな感じなので、読み直してみては。
    • good
    • 0
この回答へのお礼

ああ、なるほど、ありがとうございます。
検索までしていただいて・・・
理解できました。
iのループで100回繰り返して速さを測量しているのですね。
その意味がこれで理解できました。
ありがとうございました。
いかにも初心者らしい質問で失礼しました。

お礼日時:2007/01/27 00:25

通常、何かのコードを書く場合、使用する変数に対して明確に型を宣言します。

宣言しなくてもエラーにはなりませんが、宣言した方が問題が起き難くなります。

変数jはループカウンタとセルの指定に、変数iはループカウンタとして使用していますので、それぞれ整数型ですよ、と宣言をした。

こういう事ですね。まぁ、これは誤植で
Cells(j, 1)→Cells(j, i)が正解だと思いますが。

この回答への補足

さっそくのご回答をありがとうございます。

「>まぁ、これは誤植でCells(j, 1)→Cells(j, i)が正解だと思いますが。」

についてですが、私も最初はそのように思いました。が、読みすすめるにつれて、同氏のほかの解説にもやはり変数「i」の宣言をしているのに、目的の記述には使われていないのです。

やはり、なにかの間違いと理解していいのでしょうか?

補足日時:2007/01/27 00:08
    • good
    • 0
この回答へのお礼

ありがとうございました。疑問が解決しました。

お礼日時:2007/01/27 00:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!