Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


169 / 13645 ツリー ←次へ | 前へ→

【81692】Activateのエラーについて kazu 21/3/23(火) 17:43 質問[未読]
【81694】Re:Activateのエラーについて γ 21/3/23(火) 19:56 発言[未読]
【81695】Re:Activateのエラーについて kazu 21/3/23(火) 23:03 回答[未読]
【81696】Re:Activateのエラーについて γ 21/3/24(水) 8:51 発言[未読]
【81697】Re:Activateのエラーについて kazu 21/3/24(水) 9:21 お礼[未読]

【81692】Activateのエラーについて
質問  kazu  - 21/3/23(火) 17:43 -

引用なし
パスワード
   いつも参考にさせて頂き助かっております。

さて、色々解決方法を模索しておりますが原因自体が全くが分からない為、非常に困っております。

状況としては以下です。

ブックA・・・マクロを組んでいるブック
ブックB・・・保護ビュー状態
      (「編集を有効にする」ボタンを押していない状態で開いている)

ブックAのユーザーフォーム上にあるThisWorkbook.Activateが書かれたコマンドボタンを実行する際、ユーザーフォームを開いた後、一度ブックBを選択(Activate)してから、ユーザーフォームに戻りコマンドボタンを実行した場合、エラーが発生します。
ブックBの編集が有効になっている場合はエラーは起こりません。

エラー内容は
実行時エラー'1004':
'Activate'メソッドは失敗しました:'_Workbook'オブジェクト

ブックAがアクティブになるかどうかの問題に対して、直前にアクティブになっているブックの状態の影響をなぜ受けるのか全然検討つかず、どのような解決策を取ればいいか分からない状態です。

恐れ入りますが、原因及び解決策をご教示頂けますと幸いです。

【81694】Re:Activateのエラーについて
発言  γ  - 21/3/23(火) 19:56 -

引用なし
パスワード
   ht tps://support.microsoft.com/ja-jp/topic/%E4%BF%9D%E8%AD%B7%E3%83%93%E3%83%A5%E3%83%BC%E3%81%A8%E3%81%AF-d6f09ac7-e6b9-4495-8e43-2bbcdbcb6653#bm2
を見たら、下記の記述がありました。これが関係していないでしょうか。

> 保護ビューを終了できない理由
> 保護ビューを終了できない場合は、システム管理者によって、
> 保護ビューを終了できないようにするルールが作成されている可能性があります。
> 管理者に問い合わせて、そのようなルールが適用されているかどうかを確認してください。

個人ユースですか?
企業で使っているのでしたら、システム管理者に確認したらどうでしょう。

なお、もし単なるコードのミスだとしても、関連するコード提示が無いので
当方では不明です。

【81695】Re:Activateのエラーについて
回答  kazu  - 21/3/23(火) 23:03 -

引用なし
パスワード
   Y様
ご回答ありがとうございます。

現在、仕事で個人的にマクロを組み使用しておりますが、
今後、他同僚も使用する事を考え、不具合の検証等を行っているところです。

不具合を検証するために、シンプルに下記コードで検証しても同じ結果が得られます。

ブックAのSheet1にユーザーフォーム1(モードレスです)を呼び出すボタンを設置し、
下記コードにてユーザーフォーム1を呼び出す。

Sub Sheet1_ボタン1_Click()
UserForm1.Show
End Sub

ユーザーフォーム1を呼び出した後に、
マウスクリックにて編集を有効化していないブックBの任意のセルを選択し、
ブックBをアクティブにしてからマウスクリックにてユーザーフォーム1に戻る。
(ユーザーフォーム1に戻る時はブックAをクリックするのではなく、
 ユーザーフォームをクリックし戻る)


ユーザーフォーム上の下記コードが書かれたコマンドボタンをクリック。
Private Sub CommandButton1_Click()
ThisWorkbook.Activate
End Sub

ブックBが編集を有効化していなかった場合、エラーが発生し、
有効化していた場合はエラーが発生しません。


正直、このような操作を行うケースは(偶発的にも)無いと思いますし、
ブックAと同時に開くエクセルファイルは常に編集を有効化しておけばこの問題は起きませんので、気にする事ではないのかもしれませんが、
VBAを勉強している中で、どのような理屈でこのエラーが発生するのか非常に気にな
っております。

【81696】Re:Activateのエラーについて
発言  γ  - 21/3/24(水) 8:51 -

引用なし
パスワード
   保護ビューになっているブックを操作した経験がないので
確かな話ではなく、想像に過ぎませんが、少しコメントします。

そもそも、「保護ビュー」というのは、
インターネットからダウンロードしたりしたもので、内容に懸念があるとき等に、
設定されるものと思います。
ですから、なんらかの制限的なことがあっても、
それはセキュリティ管理上のものであると、想像するほかないと思います。
保護ビューのかかったブックを操作したあともリスク懸念しているのかもしれません。

もう少し他の回答を待つか、確実なことを知りたければ、
マイクロソフト社に確認されたらどうでしょうか。

【81697】Re:Activateのエラーについて
お礼  kazu  - 21/3/24(水) 9:21 -

引用なし
パスワード
   y様

コメントありがとうございます。
仰る通り、保護ビューブックから通常ブックへアクティブを移すときに、保護ビューからアクティブが外れないという制限が掛かっているかもしれません。

また、Activateという命令自体も、アクティブにしたいブックだけに命令が飛ぶのではなく、命令を出す前にアクティブになっているブックにも何かしらの命令が飛んでおり、保護ビューだとそれを受けられないのかもしれませんね。

作業上、問題ない事ではありますが、原因が分からないとすっきりしませんので、一度、マイクロソフト社に確認させて頂こうと思います。

度重なるご回答ありがとうございました。

169 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free