
次のコードを実行させるとファイル 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】ワークブックを開く時にエラーが出る場合と出ない場合の違いは?
Excel(エクセル)
-
-
4
Workbook_openでマクロが実行されない
Excel(エクセル)
-
5
エクセルVBAでブックを開くと処理が終わってしまう
Visual Basic(VBA)
-
6
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
7
エラーになってないのにVBAが中断される
Excel(エクセル)
-
8
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
9
別ファイルを開かず、INDIRECT関数を使用せずに、別ファイルのデータを求めたい
Excel(エクセル)
-
10
VBAで、セル(Range)のオブジェクトが取得できない
Excel(エクセル)
-
11
Excel2000/VBA:値と書式のみ貼り付けたい。
Excel(エクセル)
-
12
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
13
Private Sub Workbook_open()で、マクロが止まってしまいます
Excel(エクセル)
-
14
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
15
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
16
マクロの「SaveAs」でエラーが出るのを解消したいです(再)
Visual Basic(VBA)
-
17
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
18
EXCELでワークシートを開いたらマクロを自動実行したい
Excel(エクセル)
-
19
ExcelのVBAでフォームが表示されない
Excel(エクセル)
-
20
エクセルファイルをオープンしたときの再計算について
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1日に1人がこなせるプログラム...
-
VBAでファイルオープン後にコー...
-
access2003 クエリSQL文に...
-
Excelシート上で右クリックがで...
-
特定行の背景色を変えたいのですが
-
JANコードとPOSコードは同じ?
-
ACCESSユニオンクエリでORDER B...
-
Excel VBAでOpenTextのFieldInf...
-
ランタイムのいらないプログラ...
-
PreviewKeyDownイベントが2回...
-
1、Rstudioで回帰直線を求める...
-
Nullの使い方が不正です。
-
Windowsアプリケーションのお勧...
-
ASCIIコードを文字に変換したい
-
変数名「cur」について
-
プレースホルダー
-
文字コード変換(Unicode To KS...
-
パイソンプログラム
-
Exel VBA 別ブックから該当デ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
access2021 VBA メソッドまたは...
-
1日に1人がこなせるプログラム...
-
JANコードとPOSコードは同じ?
-
1、Rstudioで回帰直線を求める...
-
access2003 クエリSQL文に...
-
Exel VBA 別ブックから該当デ...
-
JavaScriptの定数名が取り消し...
-
COBOLの文法
-
VBAでファイルオープン後にコー...
-
変数名「cur」について
-
エクセルに見えない文字(JISX0...
-
オートフィルタで抽出結果に 罫...
-
Nullの使い方が不正です。
-
PreviewKeyDownイベントが2回...
-
【VB6】実行ファイルとした後、...
-
Javaの改行について
-
C# コードビハインドについて
-
Excelシート上で右クリックがで...
-
木偏に「久」
おすすめ情報
目的の 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のバグでした。