
たとえば、
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
vba 連続するとうまく作動せず
Visual Basic(VBA)
-
-
4
Excel/VBA ステップインと通常実行の違い
Excel(エクセル)
-
5
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
6
同じマクロなのに結果が違う
Excel(エクセル)
-
7
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
8
cellsで特定の離れた範囲を選択する方法は?
Visual Basic(VBA)
-
9
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
10
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
11
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
12
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
13
マクロで、次のコードへ行く前に時間をおくにはどうしたらいいのでしょうか?
その他(Microsoft Office)
-
14
VBAでダブルコーテーション入りの数式をセルにセットしたい
Visual Basic(VBA)
-
15
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
16
エクセルVBAが途中で止まります
Visual Basic(VBA)
-
17
エラーになってないのにVBAが中断される
Excel(エクセル)
-
18
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
19
お助けください!VBAのファイル名エラーについて
Visual Basic(VBA)
-
20
DoEventsがやはり分からない
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETでボタンのクリックイベ...
-
パソコンに何かが勝手にダウン...
-
COBOLで集団項目から符号...
-
プロパティの値が不正ですって...
-
eclipseで、「ポート番号が使用...
-
【急いでます!】pythonでキー...
-
Excel実行時エラー-2146959355?
-
latexでのエラー
-
エクセルVBA、ステップモードと...
-
パソコンのスクリーンセーバー...
-
chatGPTで次々と質問をしていく...
-
ATOMは何の略ですか
-
ランタイム関数とは何ですか?
-
Flashゲームをホームページで楽...
-
ASP用のエディタを教えてくださ...
-
A-oneのラベル屋さんについて
-
MFC42D.DLLの最新バージョンは?
-
京セラのスマホ、BASIO3をバー...
-
1秒毎に1カウントアップ
-
timeBeginPeriodとtimeEndPerio...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eclipseで、「ポート番号が使用...
-
Excel実行時エラー-2146959355?
-
エクセルのVBA関数の実行す...
-
パソコンに何かが勝手にダウン...
-
エクセルVBA、ステップモードと...
-
VB.NETでボタンのクリックイベ...
-
パソコンのスクリーンセーバー...
-
管理者として実行を毎回すると...
-
PC版のMinecraftが応答なしにな...
-
latexでのエラー
-
EXCEL-VBAでコマンド...
-
プログラム実行中に強制停止さ...
-
Shell関数について
-
shell Script の実行
-
Windows10 で青鬼を遊びたいの...
-
COBOLで集団項目から符号...
-
スタートアップの削除
-
VB.NETでDataTableにデータ追加...
-
たまにマクロを実行できないと...
-
プロパティの値が不正ですって...
おすすめ情報