![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?a65a0e2)
No.4ベストアンサー
- 回答日時:
以下のページは97での問題として記載されているページですが
http://support.microsoft.com/kb/167278/ja
2007でも同じ現象だそうです。
Excel豆知識34
http://www11.plala.or.jp/koma_Excel/contents4/ma …
このページの最後に記載されていました。
オートシェイプか「フォーム」ツールバーのボタンじゃないとご希望の動作は無理みたいですね。
No.5
- 回答日時:
#2-3、cjです。
#2お礼欄拝見しました。
まず、お詫びです。
#2-3に書いた内容は、私の勝手な読み違え(勘違い→思い込み)で、
ウィンドウの分割を適用した場合のことを書いていました。
新しいウィンドウを開いた場合のことで言えば、
確かに、ひとつのコマンドボタンについて、その動作は、ひとつのウィンドウに限られます。
また、前提が違っていたせいで、
非アクティブなウィンドウ上のコントロールを一度のクリックで操作できる
ようにしたいという要望であると、二重に勘違いしていました。
すみませんでした。m(__)m
従って、#2お礼欄でご提示の疑問点については、
すべて前提を間違えた私の問題であって、
> こちらの操作上のミスなどが有りましたら
そちらで確認されていることはに、誤りはありません。重ねて申し訳ないです。
"[TakeFocusOnClick]の値をTrueからFalseに設定変更"し場合についてですが、
フォーカスを持つかどうかの違いから派生して、
フォーカスを持っている時=押した後、
「見た目の変更」としては、コマンドボタンのテキストフレームに四角い枠が破線で表示され、フォーカスを持っていることを示唆します。
また、この場合(次の操作でコマンドボタン以外を選択するまで)
Excelのツールバー等のメニューの多くが(グレイアウトして)無効になってしまいます。
> 実際の操作の場合、フォーカスが動いてから操作できれば十分だと思っています。
> しかし現状では、activeXコントロールのボタンの場合、全く動きません。どうしたらいいのでしょうか。
あらためてお応えしますが、これは仕様上の動作でして、
ユーザーの通常の操作や設定によって、お望み通りに出来るようなものではないです。
このまま無責任に終ってしまうのも悲しいので、と、
何か方法は無いかとずっと格闘しているのですが、色々試してはみたものの、
十分な形のものを提示するのは未だ、難しいです。
コマンドボタンを複製したものを元のコマンドボタンに重なる位置に配置して、
ウィンドウ毎に有効なコマンドボタンを切り替える、というアイディアで、
2つのウィンドウ、ひとつのシート、(元々)ひとつコマンドボタン、
で実現する(2つのウィンドウでコマンドボタンを機能させる)処までは概ね出来ました。
2つのコマンドボタンを見かけ上ひとつのコマンドボタンとして、
それぞれに対応したウィンドウで操作出来るようにする、というものです。
特別な処理をする訳でもないのですが、汎用性を持たせることに躓いています。
「2つのウィンドウ、ひとつのシート、(元々)ひとつコマンドボタン」
というような限定的な条件なら、実用出来そうな見込みでいます。
コマンドボタン切り替えの部分のプロットは、こんな感じです。
Private Sub Workbook_WindowActivate(ByVal Wn As Window)
If モジュール変数キャンセルフラグ Then Exit Sub
With Wn.ActiveSheet
Select Case .Name
Case "Sheet1"
Select Case Wn.WindowNumber
Case 1
.OLEObjects("CommandButton1").SendToBack
Case 2
.OLEObjects("CommandButton2").SendToBack
End Select
End Select
End With
End Sub
後は、Workbook_Openイベントで、
コマンドボタンの有効ウィンドウを設定する
(Window:1で"CommandButton2"を有効に、Window:2で"CommandButton1"を有効に、)
処理との組み合わせ、調整です。
今の処、後々のメンテナンスを見通して開発できるレベルではないですし、
決してスマートな方法でもなく、まだどうなるか解りませんけれど、
もう暫く闘ってみようかと個人的に思っています。
スレッドを締切るのでしたら、それはそれで、私としては構いません。
またご迷惑を掛ける結果に終るかも知れませんから、
質問者さんの思いのままにお任せします。
そこまでしてActiveXコントロールを使う必要はない、という判断もあると思いますし、
その方が普通だとも思います。
とりあえず、以上です。
お騒がせしてしまって本当にすみませんでした。p
丁寧な説明、いろいろな試み、本当にありがとうございます。知らないことも多く、とても参考になります。ただ、今回のことに関しては、Excelそのものの問題というか、仕様のようなので、スレッドは締めさせていただきます。操作性の点で、こういうことができたらいいなあ、とは思いますが、それができないのであれば、可能な方法を組み合わせて、別の操作方法などで工夫したいと思います。ありがとうございます。
No.3
- 回答日時:
#2、cjです。
手順の説明中、1ヶ所、誤記がありました。
ひとつの変更だけで、
どのウィンドウからでも一発で操作出来るようにするには、
[デザインモード]→コマンドボタンを右クリック→[プロパティ]→
表示されるプロパティウィンドウにて、
[TakeFocusOnClick]の値をTrueからFalseに設定変更すればいいです。
以上、訂正です。失礼しました。
No.2
- 回答日時:
こんにちは。
ActiveXコントロールのコマンドボタンをシート上に配置している場合は、
コマンドボタンが最後にフォーカスを持ったウィンドウでの操作が優先されます。
または、現在アクティブなウィンドウに表示されたコマンドボタンならば、
直接操作出来ます。
具体的には、
コマンドボタンを操作したいウィンドウ上の、セルやコントロールを選択してから押す、とか、
コマンドボタンを続けて2回押す、とかになります。
以上は、現状維持のまま、操作法で対応する方法ですが、
ひとつの変更だけで、
どのウィンドウからでも一発で操作出来るようにするには、
[コマンドボタン]→コマンドボタンを右クリック→[プロパティ]→
表示されるプロパティウィンドウにて、
[TakeFocusOnClick]の値をTrueからFalseに設定変更すればいいです。
この設定変更はいつでも元通りにできますし、
ボタンを押した時の見た目が多少変わりますが、それ以外には、
悪い影響は一切なく、マクロの内容によってはエラー回避に役立つこともあります。
お奨めです。
ActiveXコントロールに代えてフォームコントロールにすれば、
常にウィンドウを選ばずに一発で操作出来ますが、
機能やデザイン性、発展性に関して限定されものとなってしまいます。
以上、考え方として、3通り、です。
ありがとうございます。
指摘のとおりのことを試してみましたが、上手く動きませんでした。もし、こちらの操作上のミスなどが有りましたらお知らせください。使っているのはexcelの2003です。
指摘の考え方を上から順に1,2,3とします。
1の場合 同じシートを2つ表示した場合、指摘のようになりませんでした。別のシートの場合は、指摘のとおり、フォーカスが動けば、操作できます。今回動かずに困っているのは、同じシートを2つ開いた場合です。
2の場合 [TakeFocusOnClick]の値をTrueからFalseに設定変更しましたが、同じシートの場合、ボタンを押すことはできませんでした。動きません。ボタンを押したときの見た目の変更は分かりません。同じシートの場合、有効なボタンを押すと、有効でないシート側のそのボタンには斜線が入ります。一方、[TakeFocusOnClick]の値がFalseの場合、その斜線は入りませんが、操作できないのは変わりません。ボタンを押すことができません。更に、ボタンを押すことができない側のシートで、プロパティを表示させると、シートのプロパティは表示されませすが、ボタンのプロパティは表示されません。まるでボタンがそこに存在しないかのようです。しかし、プロパティをいじるのはボタンを設定した者であって、それを使う者ではないので、まあ、とりあえずはいいのですが。Excelの仕様なのでしょうか。別のシートの場合、フォーカスが動けば、操作できます。1の場合と同様です。[TakeFocusOnClick]の値の変更の結果、何が変化したのか良くわかりませんでした。
3の場合 フォーカスが動けば操作できます。シートのフォーカスが無い場合は、1回目のクリックでフォーカスが動き、2枚目のクリックで、操作できます。ただ、ご指摘のような「常にウィンドウを選ばずに一発」では操作できませんでした。なぜでしょう。また、フォームコントロールではなく、activeXコントロールで何とかしたいと思っています。
実際の操作の場合、フォーカスが動いてから操作できれば十分だと思っています。しかし現状では、activeXコントロールのボタンの場合、全く動きません。どうしたらいいのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【ExcelVBA】動的にボタン、ボタン名を生成できますか? 7 2022/04/08 12:54
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
- Excel(エクセル) vba 同じブック内での転記について 4 2023/01/15 14:42
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- オンラインゲーム pc版fall guysでプロコンが反応しなくなりました。windowsです。プロコンをusb接続す 1 2023/02/14 17:33
- その他(Microsoft Office) windows10で作業を終了する際の「保存しますか はい いいえ」を表示させずに自動で保存する方法 6 2023/03/15 11:29
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
- Visual Basic(VBA) Excel ファイルを指定し、指定されたファイル内にシートを統合するVBA 8 2023/07/10 10:09
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- Visual Basic(VBA) VBAで早押しゲームを作りたい 4 2022/05/12 13:46
このQ&Aを見た人はこんなQ&Aも見ています
-
見学に行くとしたら【天国】と【地獄】どっち?
みなさんは、一度だけ見学に行けるとしたら【天国】と【地獄】どちらに行きたいですか? 理由も聞きたいです。
-
何回やってもうまくいかないことは?
みなさんには、何回やってもうまくいかないことはありますか?
-
もし10億円当たったら何に使いますか?
みなさんの10億円プランが知りたいです!
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
「これいらなくない?」という慣習、教えてください
現代になって省略されてきたとはいえ、必要性のない慣習や風習、ありませんか?
-
クリックイベントなのに、2回クリックしないとフォー
Access(アクセス)
-
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
複数シートのボタンに同一の動作をさせたい
Excel(エクセル)
-
-
4
エクセルVBAでOptionButtonのオンオフ取得
Excel(エクセル)
-
5
エクセルのマクロボタンが動かなくなった。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ユーザーフォームに別シートか...
-
VBA CommandButtonの文字ずれ
-
VB.net でトグルボタンを実現し...
-
コマンドボタンやイメージにマ...
-
Excel VBA Application.caller...
-
VBAで多数のプログラムを一つの...
-
プロシージャからイベントをコ...
-
ASP.Net ラベルの内容をすぐに...
-
ボタン(コントロール)を丸くしたい
-
セルをマクロのボタンにしたい。
-
VBAのボタンの位置が変わって困...
-
Access VBA でデータペーストを...
-
Excel マクロ 閉じるボタン
-
Button(コントロール)を半透明...
-
VBA でのボタンの移動について
-
ボタンをマウスで押し続けたと...
-
コマンドボタンの長押し
-
VBA ユーザーフォームラベルキ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ユーザーフォームに別シートか...
-
フォームの再読み込み
-
Excel VBA Application.caller...
-
VBA CommandButtonの文字ずれ
-
セルをマクロのボタンにしたい。
-
ボタンをマウスで押し続けたと...
-
コマンドボタンやイメージにマ...
-
VBAのボタンの位置が変わって困...
-
Access VBA でデータペーストを...
-
[VB.net] ボタン(Flat)のEnable...
-
VB.net でトグルボタンを実現し...
-
閉じると「+」になり開くと「-...
-
Excel マクロ 閉じるボタン
-
C#プログラムで、ボタンをショ...
-
VBAで多数のプログラムを一つの...
-
ASP.Net ラベルの内容をすぐに...
-
TextBoxでEnterキーを押すと、...
-
アイコンとボタンの違い
おすすめ情報