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
No.2ベストアンサー
- 回答日時:
単に、1回実行するだけだと時間差が小さすぎるので、iのループで100回繰り返しベンチマークしている模様。
検索して見つかったページですと、そんな感じなので、読み直してみては。
ああ、なるほど、ありがとうございます。
検索までしていただいて・・・
理解できました。
iのループで100回繰り返して速さを測量しているのですね。
その意味がこれで理解できました。
ありがとうございました。
いかにも初心者らしい質問で失礼しました。
No.1
- 回答日時:
通常、何かのコードを書く場合、使用する変数に対して明確に型を宣言します。
宣言しなくてもエラーにはなりませんが、宣言した方が問題が起き難くなります。変数jはループカウンタとセルの指定に、変数iはループカウンタとして使用していますので、それぞれ整数型ですよ、と宣言をした。
こういう事ですね。まぁ、これは誤植で
Cells(j, 1)→Cells(j, i)が正解だと思いますが。
この回答への補足
さっそくのご回答をありがとうございます。
「>まぁ、これは誤植でCells(j, 1)→Cells(j, i)が正解だと思いますが。」
についてですが、私も最初はそのように思いました。が、読みすすめるにつれて、同氏のほかの解説にもやはり変数「i」の宣言をしているのに、目的の記述には使われていないのです。
やはり、なにかの間違いと理解していいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数シートの複数列に入力されているデータを重複なしで抽出するVBAを作りたいです。 9 2022/06/17 10:33
- Visual Basic(VBA) マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」 4 2022/11/08 11:14
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) vbaの計算 if elseと範囲について 6 2022/11/26 01:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミングについて。 1つ...
-
画面を強制的に再描画させる方法
-
pythonでファイルのコメント行...
-
CSVファイルの特定の行だけを読...
-
DOSコマンドのループ内のTIMEコ...
-
「偶数・奇数の和」のフローチ...
-
vb.netからエクセル関数書き込み
-
VB2010でCSVファイルの読み込み
-
VBAで3秒だけ時間を止めたい
-
DoEventsが必要な理由について
-
For文を使った九九表の作成
-
Do whileでExitせず、ループの...
-
エクセル関数で1〜12の数字がル...
-
VBA for文が止まらない
-
Escキーを押すと、中断する時と...
-
テキストボックスの名前に変数...
-
null 参照の例外が実行時に発生...
-
UWSCの終了の仕方
-
VBA横データを縦にしたいです
-
VBA for i=1 to lastrow
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
VBAで3秒だけ時間を止めたい
-
VBAでの一時停止と再開の方法
-
どなたかこのプログラミングを...
-
Escキーを押すと、中断する時と...
-
UWSCの終了の仕方
-
エクセルの当番表を作っていま...
-
VBA for i=1 to lastrow
-
「偶数・奇数の和」のフローチ...
-
アクティブセルから、A列最終行...
-
DoEventsが必要な理由について
-
vb.netからエクセル関数書き込み
-
GIFアニメをループさせたくない
-
DOSコマンドのループ内のTIMEコ...
-
範囲指定したセルを1つずつ飛...
-
流れ図(フローチャート)が分か...
-
乱数の桁数指定、または範囲指定。
-
テキストボックスの名前に変数...
-
CSVファイルの特定の行だけを読...
-
vb.netです。2次元配列の要素を...
おすすめ情報