
たとえば、
dim i,j,k as integer
for i=1 to 10
for j=1 to 1000
for k=1 to 100
cells(i*1000+j,k).value=worksheets(i).cells(j,k).value
next k
next j
next i
みたいなものを実行させると、転記する行がずれることってありますでしょうか。
F8キーを押し続けて一行ずつ実行させたときには問題ないのですが、普通に実行させたときと結果が異なります。
本当はもっと複雑なプログラムを走らせているのですが、決まって同じセルでおかしな値が入力されてしまうのです。
同じような経験をされた方とか、解決方法をご存じの方、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
ステップインで問題ないうことは、処理が間に合っていないと思われます。
想定ですが、ご例示の変数i,jのバリアント型が気になる(処理速度が落ちる)のですべてInteger型でお試し下さい。
変数の型宣言、同じ型なら一括でできるものと思ってました。
一つ一つを整数型で宣言して試したところ、ステップインと同じ、期待通りの転記がなされるようになりました。処理速度の向上も実感できました。変数の型で変わるものなのですね。
ありがとうございました。
No.2
- 回答日時:
> F8キーを押し続けて一行ずつ実行させたときには問題ないのですが
10×1000×100=100万ですよね。ホントに全部をステップ実行させた?
#1さんがおっしゃっているのは
dim i,j,k as integer
と書いたら
dim i as variant,j as variant, k as integer
と書いたのと同じなのでダメ。
dim i as integer, j as integer, k as integer
ということですよ。
>10×1000×100=100万ですよね。ホントに全部をステップ実行させた?
毎回決まって同じところで不具合が生じていたので、その直前の箇所からステップ実行させました。
if i=8 and j=5000 then
msgbox "もうすぐ"
end if
を挟んで、以降をステップで、というやり方です。
型宣言の解説、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) VBAで時間(00:00形式)を積算(足し算)したい 1 2022/11/15 17:04
- Visual Basic(VBA) 乱数の表示 4 2022/10/12 10:43
- Visual Basic(VBA) 【VBA】特定のワードが入っている行全体を塗りつぶしたい 4 2022/04/20 15:22
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel/VBA ステップインと通常実行の違い
Excel(エクセル)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
同じマクロなのに結果が違う
Excel(エクセル)
-
-
4
vba 連続するとうまく作動せず
Visual Basic(VBA)
-
5
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
6
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
7
cellsで特定の離れた範囲を選択する方法は?
Visual Basic(VBA)
-
8
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
9
Vba初心者です。下記のコード助けてください Loopに対するDoがありませんと表示されます Sub
オープンソース
-
10
【Excel VBA】マクロをボタンに登録したがエラーで実行できない
Visual Basic(VBA)
-
11
特定の文字を含むシートだけマクロ処理をしたい
Visual Basic(VBA)
-
12
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
13
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
14
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
15
VBAでダブルコーテーション入りの数式をセルにセットしたい
Visual Basic(VBA)
-
16
マクロで、次のコードへ行く前に時間をおくにはどうしたらいいのでしょうか?
その他(Microsoft Office)
-
17
UserForm1.Showでエラーになります。
工学
-
18
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
19
エクセルVBAが途中で止まります
Visual Basic(VBA)
-
20
別シートのマクロを実行する方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
eclipseで、「ポート番号が使用...
-
Excel実行時エラー-2146959355?
-
ランタイム関数とは何ですか?
-
「管理者として実行」された場...
-
管理者として実行を毎回すると...
-
EXCEL-VBAでコマンド...
-
パソコンのスクリーンセーバー...
-
エクセルVBA、ステップモードと...
-
Windowsキーを無効
-
VB.NETでDataTableにデータ追加...
-
実行中のVBSをタスクバーに非表...
-
【HTML】INPUTの値を引数にBAT起動
-
プログラミングについてです。...
-
たまにマクロを実行できないと...
-
VC 砂時計表示
-
プロパティの値が不正ですって...
-
shell Script の実行
-
PC版のMinecraftが応答なしにな...
-
Shell関数について
-
execelのVBAでIEの操作
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パソコンに何かが勝手にダウン...
-
Excel実行時エラー-2146959355?
-
eclipseで、「ポート番号が使用...
-
PC版のMinecraftが応答なしにな...
-
エクセルVBA、ステップモードと...
-
パソコンのスクリーンセーバー...
-
「管理者として実行」された場...
-
管理者として実行を毎回すると...
-
VB.NETでボタンのクリックイベ...
-
プログラム実行中に強制停止さ...
-
VB.NETでDataTableにデータ追加...
-
プロパティの値が不正ですって...
-
latexでのエラー
-
jbossとjdkの関係性、違いにつ...
-
Windows10 で青鬼を遊びたいの...
-
EXCEL-VBAでコマンド...
-
XPパソコンのレスポンスの遅さ
-
ATOMは何の略ですか
-
プログラムが書けません。
-
起動したアプリケーションを最...
おすすめ情報