次のプログラムですが、ブックが勝手に切り替わってしまいます。
Main, Sub 二つのブックを同時に開き、Mainのアクティブセルをコマンドボタンを押して動かすだけでSubのブックがアクティブになってしまいます。
Rem 標準モジュール
Public SubBook As Workbook
Public MainBook As Workbook
Private Sub Workbook_Open()
Set MainBook = ThisWorkbook
Dim wsh As Object
Set wsh = CreateObject("WScript.Shell")
Workbooks.Open wsh.SpecialFolders("Desktop") + "\Sub.xlsm"
Set SubBook = ActiveWorkbook
UserForm1.Show vbModeless
End Sub
Private Sub CmdA1_Click()
ActiveSheet.Range("A1").Activate
End Sub
Private Sub CmdG4_Click()
ActiveSheet.Range("G4").Activate
End Sub
Private Sub CmdMain_Click()
MainBook.Activate
End Sub
Private Sub CmdSubActivate_Click()
SubBook.Activate
End Sub
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
No1です
>移動ボタンを押すと勝手にSubBookがアクティブになってしまい
エクセル側が、フォームを表示した際の状態をどこかに記憶しているようですね。
まぁ、表示したいブックが決まっているようですので、クリックイベントでの処理で
>ActiveSheet
のような状態依存の指定方法をせずに、表示したいブック・シートを明示すれば済む話のように思いますけれど・・・?
ActiveSheetをMainBookに変えて明示するようにしたのですが、それでも移動ボタンを押す度にMain, Sub, Main, SubとBookが交互に変ります。
No.1
- 回答日時:
こんばんは
全体像が不明なので、Public変数を用いている意図などがわかりかねますが・・
Workbooks.Openメソッドを実行すると、手操作と同様で開いたブックがActiveになります。
(これは仕様なので仕方がないですね)
元のブックをアクティブにしておきたければ、その後で
MainBook.Activate
などを実行しておけば済むと思います。
ブックを開く間に画面がチラつくのが気になる様であれば、Subのブックは非表示の別インスタンスで開くという方法もあります。
こちらの場合は、ブックの扱いが若干面倒になりますけれど・・
分かりにくくてすみません。
先ずMainBook.xlsmとSubBook.xlsmの二つのファイルがあります。
そしてMainBookの方を起動するとSubBookの方も起動します。
MainBookの方にはUserForm1が有り、このフォームにはアクティブセルがA1セルへ移動するボタン、G4セルへ移動するボタン、MainBookをアクティブにするボタン、SubBookをアクティブにするボタンが付いています。(計4つのボタン)
症状:MainBookがアクティブの状態で、移動ボタンを押すと勝手にSubBookがアクティブになってしまい、次移動ボタンを押すとSubBookの方が反応しセルが移動してしまいます。
またこのときセルの周りの枠線が、MainBook、SubBookのどちらにも付いてしまいます。
エクセルのバグとしか思えないです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Excel(エクセル) VBA Scripting.Dictionary 連想配列 複数参照する方法 2 2021/12/17 01:52
- Visual Basic(VBA) EXCEL VBA シート貼り付け 3 2021/11/15 12:33
- Visual Basic(VBA) VBA countif について 3 2021/12/16 20:13
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
- Visual Basic(VBA) Excel VBA ユーザーフォーム1のコンボボックスに別ブックの値を反映させたいです。 6 2023/03/21 16:12
- Excel(エクセル) Rangeメソッドは失敗しました。globalオブジェクトについて 6 2021/11/21 21:54
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Excel(エクセル) 3つのマクロを連続実行の中で、1つ目のマクロ要件を満たさなかったら、マクロ2・3を実行しない為には 1 2023/10/15 13:42
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
Excel VBAマクロをマスターするのに、どれ位時間掛かりますか?
Visual Basic(VBA)
-
ExcelのVBAのことで質問です。 以下のコードを入れ、ボタンを押せば作動させると写真のように画面
Visual Basic(VBA)
-
Excel VBAでの数値の計算についておしえてください
Visual Basic(VBA)
-
-
4
excelのVBAについて、以下のコードに追加をお願いいたします。
Visual Basic(VBA)
-
5
VBAのコードを教えてください
Visual Basic(VBA)
-
6
Excel VBA コードを教えてください。
Visual Basic(VBA)
-
7
VBA コード
Visual Basic(VBA)
-
8
ExcelVBAのFindFirstエラーについて
Visual Basic(VBA)
-
9
ご教授お願いします。#NUM!が解消されません。
Visual Basic(VBA)
-
10
月ごとに作成している日報ファイルを、VBAでコピーし日付ごとのシートにしたい
Visual Basic(VBA)
-
11
Excel VBA ダブルクリックで入力 複数まとめる
Visual Basic(VBA)
-
12
VBAのことで質問です
Visual Basic(VBA)
-
13
お世話になります。 Excel VBAのプログラムについてご教授をお願いいたします。 添付した写真よ
Visual Basic(VBA)
-
14
VBAコードが作動しません。修正したいのですが何処に原因かあるか教えて下さい。
Visual Basic(VBA)
-
15
コードを直していただきたいです。 以下のコードはネットで拾ったものをほんの少しいじった物なのですが、
Visual Basic(VBA)
-
16
Cellsのコードが打てません
Visual Basic(VBA)
-
17
VBAの質問です、複数のテキストボックスに同じコメントを
Visual Basic(VBA)
-
18
Excel VBA マクロ シート名を変えずにA列にあるセル名の名前でファイルの分割をしたいです
Visual Basic(VBA)
-
19
VBA実行後に元のセルに戻りたい
Visual Basic(VBA)
-
20
エクセルVBAの配列について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのマクロについて教えてく...
-
VBA シートをコピーする際に Co...
-
Excelのマクロについて教えてく...
-
エクセルVBAが途中で止まります
-
VBA 別ブックからコピペしたい...
-
ワイルドカード「*」を使うとう...
-
別ブックをダイアログボックス...
-
VBA コードを実行すると画面が...
-
【マクロ】アクティブセルにブ...
-
VBAで別ブックのシートを指定し...
-
エクセルのマクロを使ってメー...
-
vbaでvbaProjectのパスワード解...
-
VBA シート名が一致した場合の...
-
エクセルマクロで、他ブックか...
-
Excelのマクロについて教えてく...
-
【マクロ】違うフォルダにある...
-
エクセルマクロで任意のファイ...
-
【Excel VBA】書き込み先ブック...
-
2つ目のコンボボックスが動作...
-
Excelのマクロについて教えてく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
別ブックをダイアログボックス...
-
(マクロ)データをAブックからB...
-
VBS Bookを閉じるコード
-
VBA 別ブックからコピペしたい...
-
VBA 複数のエクセルから一つの...
-
VBA シート名が一致した場合の...
-
【ExcelVBA】インデックスが有...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
vbaでvbaProjectのパスワード解...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBA コードを実行すると画面が...
-
【VBA】全シートの計算式を全て...
-
複数のエクセルブックをひとつ...
-
VBA 実行時エラー 2147024893
-
ExcelのVBAです。フォルダ内の...
おすすめ情報
SubBook.Activate
MainBook.Activate
因みにこれを前置しておくと大丈夫です。
ちゃんとMainBookだけがが動作します。