
次のコードを実行させるとファイル Book1.xlsx がオープンされますが、VBAのコードが実行されません。そのため次のコードが実行できなくなっています。環境はWindows 10 、Excel2016 です。
〜 前のコード 〜
Workbooks.Open ("¥¥Mac¥Home¥共有フォルダ¥book1.xlsx")
〜 次のコード 〜
前のコードにブレークポイントを設定し、そこで一度止めてから実行を継続させると正常に次のコードのブレークポイントで止まります。しかし、前のコードでブレークポイントを設定せずに実行させると次のコードに設定したブレークポイントで停止しません。
book1.xlsxはまっさらなファイルでVBAのコードはありません。
何が原因でしょうか。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
目的として考えている「Worksheets.count」はオープンされた「book1.xlsx」のシート数ですか?それとも、マクロが書かれているブックのシート数でしょうか?
----------------------------------------------------------
間違いは無いと思うのですが、念の為
①「For i2 = 1 To Worksheets.count」の前の行に「MsgBox ("見えますか")」追加してもメッセージボックスは出ないんですよね。
② もちろんブレークポイントは全て外してあるんですよね。
No.1
- 回答日時:
もしかしたら他のブックが開いてしまったので、アクティブブックがそちらに移ってしまったために一部のコードが実行できなくなってしまったのでは?(「Range("A1").Select」のようなコードは使えなくなります)
原因がそれならば、ファイルオープン後にすぐ「ThisWorkbook.Activate」を実行すると良いかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ExcelVBAで質問です。Workbook_openイベントが発生し
その他(Microsoft Office)
-
エクセルVBAが途中で止まります
Visual Basic(VBA)
-
エクセルVBAでブックを開くと処理が終わってしまう
Visual Basic(VBA)
-
-
4
Workbook_openでマクロが実行されない
Excel(エクセル)
-
5
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
6
エラーになってないのにVBAが中断される
Excel(エクセル)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
マクロの「SaveAs」でエラーが出るのを解消したいです(再)
Visual Basic(VBA)
-
9
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
10
VBAで、セル(Range)のオブジェクトが取得できない
Excel(エクセル)
-
11
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
12
【VBA】ワークブックを開く時にエラーが出る場合と出ない場合の違いは?
Excel(エクセル)
-
13
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
14
別ファイルを開かず、INDIRECT関数を使用せずに、別ファイルのデータを求めたい
Excel(エクセル)
-
15
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
16
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
17
ExcelのVBAでフォームが表示されない
Excel(エクセル)
-
18
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
19
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
20
Sub Auto_Open() 実行されない
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UWSCでMOUSEORG関数が上手く処...
-
プログラムの記法 インラインコ...
-
アクセスで桁数を増やしたい
-
gccの最適化オプションで挙動が...
-
VB6で読み上げをしたい
-
sinカーブの表示のさせ方
-
ASP.netのおすすめ参考書
-
木偏に「久」
-
差し込み後、元データを変更し...
-
for whichの使い方
-
特定の文字列で列を区切るには?
-
ソフトバンクの無料着うたのお...
-
SQLで列名を変数にできないでし...
-
SQLで特定の項目の重複のみを排...
-
複数アドインプログラムをひと...
-
一度のsqlで値を取得するには
-
ある条件の最大値+1を初番する...
-
Outlook 送受信エラー
-
誰か教えてください
-
IDの欠番
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1、Rstudioで回帰直線を求める...
-
access2021 VBA メソッドまたは...
-
1日に1人がこなせるプログラム...
-
JANコードとPOSコードは同じ?
-
エクセルに見えない文字(JISX0...
-
変数名「cur」について
-
access2003 クエリSQL文に...
-
Excelシート上で右クリックがで...
-
【VB6】実行ファイルとした後、...
-
COBOLの文法
-
Exel VBA 別ブックから該当デ...
-
JavaScriptの定数名が取り消し...
-
C# コードビハインドについて
-
JIPS-Eコードのコード表について
-
Nullの使い方が不正です。
-
PreviewKeyDownイベントが2回...
-
VBAでファイルオープン後にコー...
-
ユーザーフォームに2つのコン...
-
ACCESSユニオンクエリでORDER B...
おすすめ情報
目的の book1.xlsx が開いていることは確認しています。
>ファイルオープン後にすぐ「ThisWorkbook.Activate」を実行する
コードが実行されないので、ThisWorkbook.Activate」を実行する ことができない状態です。
ファイルオープン後のコードは次の通りです。
For i2 = 1 To Worksheets.count
With sBook.Sheets(i2)
If .Cells(8, 2) = "パラメータ" And .Cells(8, 5) = "値の並び" Then
ss = Split(.Cells(1, 23), " ")
vernum = Left(ss(0), 2)
If vernum = "v7" Or vernum = "v6" Then
オープンされた「book1.xlsx」のシート数です。
メッセージボックスは出ません。
ブレークポイントは全て外してあります。
疑問なのは、一度手前でブレークポイント設定すると、そこから継続させた場合は正常にコードが実行されるのに、手前で止めないでそのまま実行させると次のコードが実行されない点です。
謎です。
ご指摘の確認は既に行っています。現象は同じでした。
一度ブレークポイントで止めると、開いたブックが「前面」になり、そのあとのコードが正常に実行できるが、止めないで連続で実行させると、ブックの「参照の仕方」に問題があり、コードが実行されないように見えているようです。
この辺りを重点的に調べてみます。
自己解決しました。
原因はVBAの仕様でした。
今回のコードはShiftキーを押しながらボタンをクリックすることで実行されます。この場合、VBAの仕様により、Shiftキーが押下された状態では、File Open以降のコード実行が停止するために起きた現象でした。
詳しくは次のページに解説があります。
https://support.microsoft.com/ja-jp/kb/555263
この問題で5時間近く費やしてしまいました。でも解決できてよかったです。
VBAの仕様ではありませんでした。
VBAのバグでした。