たとえば、
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(エクセル)
-
マクロで、次のコードへ行く前に時間をおくにはどうしたらいいのでしょうか?
その他(Microsoft Office)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
エクセルでエラーが出て困っています。
Excel(エクセル)
-
5
DoEventsがやはり分からない
Visual Basic(VBA)
-
6
Excel VBA ステップインが途中で通常実行になってしまう
Excel(エクセル)
-
7
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
8
DoEvents関数って何?
Visual Basic(VBA)
-
9
VBAでワークシートを引数としてサンプル関数に渡したい
Visual Basic(VBA)
-
10
【Excel VBA】マクロをボタンに登録したがエラーで実行できない
Visual Basic(VBA)
-
11
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
12
同じマクロなのに結果が違う
Excel(エクセル)
-
13
コンボボックス内の文字サイズ変更
Excel(エクセル)
-
14
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
15
screenupdatingが機能しなくて困ってます
Visual Basic(VBA)
-
16
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
17
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
18
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
19
エクセルでマクロ登録の不具合解消
その他(プログラミング・Web制作)
-
20
VBAを何回も作り直して、容量が増えた
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パソコンに何かが勝手にダウン...
-
chatGPTで次々と質問をしていく...
-
Excel実行時エラー-2146959355?
-
ターミナルからemacsへのコピペ...
-
latexでのエラー
-
eclipseで、「ポート番号が使用...
-
コマンドプロンプトを表示しな...
-
VB.NETを実行するにはどうした...
-
Windows10 で青鬼を遊びたいの...
-
起動したアプリケーションを最...
-
ATOMは何の略ですか
-
プログラム実行中に強制停止さ...
-
MFC モーダルダイアログ表示中に
-
パソコンのスクリーンセーバー...
-
VC 砂時計表示
-
pythonで他のアプリを操作する...
-
たまにマクロを実行できないと...
-
PC版のMinecraftが応答なしにな...
-
Linux:pygame 音が出ない HDMI...
-
エクセルVBA、ステップモードと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パソコンに何かが勝手にダウン...
-
chatGPTで次々と質問をしていく...
-
Excel実行時エラー-2146959355?
-
PC版のMinecraftが応答なしにな...
-
至急!RedmiPadを文鎮化させて...
-
VSコード
-
管理者として実行を毎回すると...
-
エクセルVBA、ステップモードと...
-
VB.NETでボタンのクリックイベ...
-
eclipseで、「ポート番号が使用...
-
EXCEL-VBAでコマンド...
-
プログラミングについてです。...
-
パソコンのスクリーンセーバー...
-
pythonで他のアプリを操作する...
-
プログラム実行中に強制停止さ...
-
latexでのエラー
-
プロパティの値が不正ですって...
-
Flashゲームをホームページで楽...
-
起動したアプリケーションを最...
-
「管理者として実行」された場...
おすすめ情報