• ベストアンサー

excel シート上のボタンが動かない

cj_moverの回答

  • cj_mover
  • ベストアンサー率76% (292/381)
回答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

qso
質問者

お礼

丁寧な説明、いろいろな試み、本当にありがとうございます。知らないことも多く、とても参考になります。ただ、今回のことに関しては、Excelそのものの問題というか、仕様のようなので、スレッドは締めさせていただきます。操作性の点で、こういうことができたらいいなあ、とは思いますが、それができないのであれば、可能な方法を組み合わせて、別の操作方法などで工夫したいと思います。ありがとうございます。

関連するQ&A

  • エクセルVBAのボタン操作について

    sheet1にコマンドボタン(CommandButton1)を貼り付けて sheet2にもコマンドボタン(CommandButton1)を貼り付けています。 sheet1のコマンドボタンを押すとVBAで処理をして sheet2を表示後 自動的にsheet2のコマンドボタンにかかれたVBAの処理をしたいのですがうまくいきません。 教えてください。 環境windows2000 office 2000 sheet1のボタンの最後 Sheets("2").Select ActiveSheet.Shapes("CommandButton1").Select でうまくいきません。

  • エクセル、コマンドボタンについて

    素人な質問ですみません。 シート1にコマンドボタンを作成しています。 このコマンドボタンを押すと、シート2のA1セルからE10セルに入力してある50の文字列から、ランダムにコマンドボタンのあるシート1のA1セルに表示させるようにしたいのですが。 このようなことは出きるでしょうか? VBAの知識もほとんどなく困ってます。 簡単に言うと、コマンドボタンを使って、別シートに入力してある文字列を表示させる方法ということになるでしょうか。 よろしくお願いします。

  • Excel VBA ボタンを非アクティブにするには

    Excel VBAにおいて、sheet上に製作したコマンドボタンを表示したり、非表示にしたりするコードはわかるのですが。ツールバーに作成したボタンを表示したり、非表示にしたりするコードがわかりません。ご存知でしたら御教授下さい。よろしくお願いします

  • VBA(エクセル)で自動的にボタンをクリックさせるには

    いつもお世話になっております。 下記のことがしたいのですがどうやって良いのかがわからなくって困っております。 やりたいこと。 AブックとBブックが有るとします。(双方ともエクセルファイル) エクセルのVBAで、Aブックのシート上のコマンドボタンを押すと Bブックのシート上のコマンドボタンをクリックするという動きを VBAでさせたいのですがどうしてもクリックさせることができません。 試したこと。 初めは、AのボタンをクリックするとBのボタンをセレクトして SendKeysでENTERを送ってみたりしたのですがうまくいきませんでした。 何かやり方が有りましたら、お教えいただけませんでしょう。 宜しくお願いいたします。

  • エクセルシートの表示、非表示について

    複数シートのあるブックを開いた際、常時はsheet1だけを表示して残りのシートについてはsheet1に貼り付けた各コマンドボタンで各シートが表示されるようエクセルマクロを使って作ってみたのですが、コマンドボタンではなくハイパーリンクを使ってできないものかと悩んでいます。単純に全シートが表示された状態ならハイパーリンクで何の問題もないのですが、ハイパーリンクをクリックしたときに該当のシートが表示され、sheet1に戻ると他のシートは非表示にしておきたいのですが、なにかいい方法はないでしょうか? VBAも最近使い始めまだまだ、素人故稚拙な質問の仕方で申し訳ないのですが、どなたかお力添えください。よろしくお願いします。

  • コマンドボタンでコマンドボタンを作成

    VBAで質問ですSheet1でコマンドボタンを押すとSheet2のあるセルへコマンドボタンを作成する方法を知りたいのですがどうしたらよいでしょうか?

  • VBAコマンドボタンに登録したマクロについて

    VBA初心者です。宜しくお願いします。 コマンドボタンにマクロを登録しているのですが、 急に使えなくなりました。 原因はウィンドウの固定をしてからのようなのですが、 解除後も状況はかわりません。 コマンドボタンの編集はできるがクリックできない感じです。 sheetを保護しても処理を実行できない?みたいです。 sheet1にコマンドボタンを配置し、 sheet2,sheet3に処理結果をだすプログラムです。 Sheetの保護やウィンドウの固定をしてもコマンドボタンを使う方法はありませんでしょうか? また、ユーザーフォームのテキストボックスに、 今日の日付を表示したいのですが、西暦を省き、 月/日 または 月/日/曜日 のように表示できる方法はないでしょうか? よろしくお願いいたします。

  • Excel ActiveXボタンが使えない

    VBA を実行する ActiveXコントロールボタンが使えなくなりました。 今まで :  1) メニューの「開発」--> 「デザインモード」選択 --> ボタンを選択 --> VBA コードが表示される。 2) ボタンのプロパティを見ると「Button 1」といったオブジェクト名が表示される。 昨日から : 1) メニューの「開発」--> 「デザインモード」選択 --> ボタンを選択 --> (図の) 書式メニューが表示される 2) ボタンのプロパティを見ると「Sheet1」と表示される。(Sheet 1にあるボタンは全て) 一週間前に更新された Windows のアップデートプログラムをアンインストールし、再起動しても変わりがありませんでした。 よろしくお願いします

  • Excel VBA --- コマンドボタンが表示上で消える ---

    Excel VBAの初心者です。 今回、マニュアル本を見ながら試行錯誤でマクロにチャレンジしています。 用語や説明が上手くできないかもしれませんがよろしくお願いします。 OSはWindows2000、Excelのバージョンは2000です。 sheet1をメニュー画面として、コマンドボタンをいくつか貼り付けて、そのシート名を表示したコマンドボタンをクリックすると別のシートに 飛ぶようにしています。 別のシートに飛んで、そこで作業を終えたら、今度はそのシート上に貼り付けた『メニューに戻る』コマンドボタンをクリックしてsheet1のメニュー画面に戻るようにマクロを組みました。 ところが、作業用のシートからメニューに戻ると前回クリックしたコマンドボタンが表示上消えてしまっています。 そのコマンドボタンがあった位置にカーソルを持って行ってクリックするとちゃんとコマンドボタンの動作をします。 同じような質問がないか検索してみましたら『コマンドボタン上の文字の表示がおかしくなる』という質問があって、下記コードを入れたら解決したそうなので、Sheet1に下記のようなコードを入れてみました。 でもダメでした。 Private Sub Worksheet_Activate() Application.ScreenUpdating = False ActiveWindow.ScrollRow = 100 ActiveWindow.ScrollRow = 1 End Sub 解決方法のご教授をお願い致します。

  • エクセル コマンドボタン

    1)Sheet1でコマンドボタンを作成。クリックするとフォームが表示さ  れます。そのフォームの中のテクストボックスに数字を入れ、それ  をSheet2のB2に挿入したいです。どうすればいいのですか? 2)Sheet2にコマンドボタンを作りました。Sheet2へ戻るようなボタン  を作りたいのですがどうすれば良いですか? 以上2つの質問です。是非教えてください。