No.8ベストアンサー
- 回答日時:
No.2です。
> 「カット」は、その部分が実行されていないことです。
> ifがありますが、条件はtrueなので、本来実行されるはずです。
であればそれは「カット」とは言いません。
「if文の判定結果通りに動かないように見える」などと明確にロジックがわかるように言い表しましょう。(^^;
> その部分のみを、別のマクロに書いて実行すると、できるようになります。
であれば「if文の判定結果がtrueの場合のロジックが実行されていないように見えているだけ」だと思います。
ブレークポイントを設けて実行するか、その部分にデバッグ用の何か(例えば特定のセルに値を入れるとかでもよいでしょう。音を鳴らすというのもあります)を入れましょう。
参考まで。
No.10
- 回答日時:
「入力行 = Range("A1").End(xlDown).Row+1」の下に次の命令を入れてみてもらっていいですか?
MsgBox Range("A1").End(xlDown).Row + 1
No.7
- 回答日時:
No4です。
>一応OKと表示されましたが。
OKと表示されたなら、必ずそれ以降の行が実行されます。
つまり
if True Then
msgbox("OK")
入力行 = Range("A1").End(xlDown).Row+1・・・・①
With Worksheets("結果")
.Cells(入力行, 4).Value = Time
.Cells(入力行, 5).Value = 結果出題数
.Cells(入力行, 6).Value = 正答数
.Cells(入力行, 7).Value = 誤答数
.Cells(入力行, 10).Value = user・・・・③
.Cells(入力行, 3).Value = DateDiff("n", Worksheets("結果").Cells(入力行, 2).Value, Worksheets("結果").Cells(入力行, 4).Value)
End with・・・・②
①から②まで実行されているはずです。
実行されていないように見えるだけではないでしょうか。
それでも、実行されていないと思われるなら
③にブレイクポイントを設定して実行されてはいかがでしょうか。③で止まるはずです。
If 結果の保存 = True Then ではなく
if True Then にして実行してください。
No.6
- 回答日時:
『ifがありますが、条件はtrueなので、本来実行されるはずです。
』筈じゃ無くて
実際に「結果の保存」とやらの中身はなんなの?
部分を切り出して実行すると流れるってことは、
その条件判断が成立してないってことでしかない
そのifの処理にelseを追加して見て、else側のステップが実行されているなら
理由は明らかだよね?
この回答へのお礼
お礼日時:2018/06/16 17:52
elseを書いてみましたが、実行されていませんでした。
「結果の保存」は、ユーザーフォームで、チェックボックスがあって、それの値です。
No.4
- 回答日時:
>If 結果の保存 = True Then
>入力行 = Range("A1").End(xlDown).Row+1
上記を
If True Then
MsgBox ("OK")
入力行 = Range("A1").End(xlDown).Row+1
かえたらどうなりますか?
OKが表示されるなら、「結果の保存」は間違いなくtrueでthenの側が実行されています。
もし、OKが表示されないなら「結果の保存」はtrueになっていません。
No.2
- 回答日時:
「ある部分がカットされてしまい」とは具体的にどういうことでしょう?
その直前にIF文があり、その条件に見合わないため処理されないだけなのではありませんか?
プログラムは思った通りには動かず、作った通りに動きます。
ロジックを「思い」で追っても原因はつかめません。書いてあることをしっかり見て理解してどう動くかを追いましょう。
参考まで。
No.1
- 回答日時:
条件分岐の条件が一致しないから
『その部分をF8で試したり』
その部分とは?関数なのか、更にその内部のステップなのか
F8のステップ実行は分かった、個別で実行とは何か?
サブ関数になっていて、その関数を呼んだらってことか?
#if ディレクティブとか何か使っていないか?
コンパイルオプションは?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETでボタンのクリックイベ...
-
パソコンに何かが勝手にダウン...
-
パソコンのスクリーンセーバー...
-
latexでのエラー
-
PC版のMinecraftが応答なしにな...
-
EXCEL-VBAでコマンド...
-
管理者として実行を毎回すると...
-
GUIツールキットの選択に悩んで...
-
プログラム実行中に強制停止さ...
-
Excel実行時エラー-2146959355?
-
至急!RedmiPadを文鎮化させて...
-
C++で関数を画面に描写するには...
-
VBA中断モードの解除
-
メイプルストーリーにログイン...
-
Craving Explorerのバージョン...
-
OutlookExpressについてなので...
-
NEC SmartVision をバージョン...
-
5.0 や6.0ってどこにあ...
-
ラベル屋さんと言うソフトのフ...
-
QMPでのメッセージ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パソコンに何かが勝手にダウン...
-
Excel実行時エラー-2146959355?
-
PC版のMinecraftが応答なしにな...
-
管理者として実行を毎回すると...
-
VB.NETでボタンのクリックイベ...
-
パソコンのスクリーンセーバー...
-
Windows10 で青鬼を遊びたいの...
-
エクセルVBA、ステップモードと...
-
latexでのエラー
-
プログラム実行中に強制停止さ...
-
eclipseで、「ポート番号が使用...
-
COBOLで集団項目から符号...
-
EXCEL-VBAでコマンド...
-
ATOMは何の略ですか
-
実行中のVBSをタスクバーに非表...
-
起動したアプリケーションを最...
-
VBA コントロールパネルの機能...
-
VBA中断モードの解除
-
chatGPTで次々と質問をしていく...
-
pythonで他のアプリを操作する...
おすすめ情報
「カット」は、その部分が実行されていないことです。
ifがありますが、条件はtrueなので、本来実行されるはずです。
その部分のみを、別のマクロに書いて実行すると、できるようになります。
コードです。
If 結果の保存 = True Then
入力行 = Range("A1").End(xlDown).Row+1
With Worksheets("結果")
.Cells(入力行, 4).Value = Time
.Cells(入力行, 5).Value = 結果出題数
.Cells(入力行, 6).Value = 正答数
.Cells(入力行, 7).Value = 誤答数
.Cells(入力行, 10).Value = user
.Cells(入力行, 3).Value = DateDiff("n", Worksheets("結果").Cells(入力行, 2).Value, Worksheets("結果").Cells(入力行, 4).Value)
End with
問題を出して、その正答数や誤答数、時間を合計して、結果のシートに入力するプログラムです。
プログラムを書き直したところ、解決できました。
原因はわかっていません。
とりあえず解決したということで、皆様には大変ご迷惑をおかけしました。
解答してくださった皆様、ありがとうございました。