[[20080219085327]] 『コマンドボタンを自動的に移動』(オク) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『コマンドボタンを自動的に移動』(オク)
コマンドボタンを使用した画面をスクロールしたときに、コマンドボタンも自動的にスクロール出来ないでしょうか?
WindowsXP EXCEL2003


 ほぼ無理。API駆使すればできるとは思いますが。

 シートの1番上にボタンを設置してウインドウを分割り表時にでもすれば、
 ボタン位置固定でスクロールはできます。
 この方法が多く使われているんじゃないかと思います。(多分)

 これ以外だとツールバーを使うとか。
 これならスクロールで移動しないし、ブックにも添付できるしね。
 ツールバーの位置は、ブックに添付した時にあった位置が記憶されるようです。
 マクロで、ある程度の位置に置く事ができますけど。
 位置については、ここに少し。
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=56;id=FAQ
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=57;id=FAQ
 (Jaka)

 ユーザーフォームを導入されたら良いのでは?
 モードレスで表示しておけば、ご希望の動作に近づくと思います。
 (ROUGE)

 >コマンドボタンを使用した画面をスクロールしたときに

  一般にはそのままで,ボタンも一緒に自動的に一緒にスクロールするのではないでしょうか。
  スクロールして画面から隠れてしまいませんか。

  質問の主旨は逆のことでしょうか。
 ワークシート(画面)をスクロールしても,ボタンは画面にそのまま動かない
ようにしたいということではないですか??(夕焼)

 もし,上記のことが希望でしたら,下記VBAでボタンを作ると画面に浮いてスクロールしても
移動しません。((Jaka)さんの説明のツールバーを自動で作る方法です。

  下のVBAは仮の実行マクロです。上のマクロを実行すると自動でボタンが出来て,クリックすると
 下のマクロを実行します。(夕焼) 

  Sub ボタン作成表示()

 Dim MyBar  As CommandBar
 Dim MyMenu As CommandBarButton

         On Error Resume Next

         CommandBars("Mybutton").Delete

       Set MyBar = Application.CommandBars.Add(Name:="Mybutton", Position:=msoBarFloating, Temporary:=True)

       Set MyMenu = MyBar.Controls.Add(Type:=msoControlButton)

         With MyMenu
             .Caption = "私のコマンドボタン           "
             .Style = msoButtonIconAndWrapCaption
              .TooltipText = "ここにメッセージ(注記)を書けます。"
             .FaceId = 2949
             .OnAction = "実際のマクロ名"
         End With

         Application.CommandBars("Mybutton").Visible = True
         MyMenu.Width = 130
 End Sub

 Sub 実際のマクロ名()

 MsgBox "マクロが実行されました。"

 End Sub

   補足:

 一般のツールバーは一回登録すると,EXCELに組み込まれてしまい,いつまでも
住み着いてしまいますが,上記は Temporary:=True としていますので
このマクロを実行した時のみ発生し,EXCEL本体には組み込まれませんので
EXCEL自身を汚しません。

 ブックを開いた時にコマンドボタンも表示したければ,開く時の
 Workbook_Open() に登録しておきます。

 .OnAction = "実際のマクロ名"   のところに,マクロ名を記載して
  実際に呼んでくるマクロを指定します。
 ・FaceId = 2949   ここで,ボタンに付けるfaceIDのID番号を指定します。
              この数値により絵柄が変わります。 2949は空欄です。
            faceIDの絵柄などについては下記が参考になります。
      FaceId =266 などにしてみてください。どんなアイコンになるでしょうか。

         http://www.h3.dion.ne.jp/~sakatsu/FaceIdBrowse.htm   


皆様方のアドバイスに基づき頑張ってみます。
かなり初心者に近い物ですから、何をしてもうまく実行できていません。
これからもよろしくお願いいたします。
「オク」

 >何をしてもうまく実行できていません。

 上記VBAマクロ(下記に再掲載)をコピーして実行してみられたでしょうか。
 マクロ ,マクロ文の組込み方法は御存知でしょうか?。(夕焼)

 Sub ボタン作成表示()

 Dim MyBar  As CommandBar
 Dim MyMenu As CommandBarButton

         On Error Resume Next

         CommandBars("Mybutton").Delete

       Set MyBar = Application.CommandBars.Add(Name:="Mybutton", Position:=msoBarFloating, Temporary:=True)

       Set MyMenu = MyBar.Controls.Add(Type:=msoControlButton)

         With MyMenu
             .Caption = "私のコマンドボタン           "
             .Style = msoButtonIconAndWrapCaption
              .TooltipText = "ここにメッセージ(注記)を書けます。"
             .FaceId = 2949
             .OnAction = "実際のマクロ名"
         End With

         Application.CommandBars("Mybutton").Visible = True
         MyMenu.Width = 130
 End Sub

 Sub 実際のマクロ名()

 MsgBox "マクロが実行されました。"

 End Sub


夕焼様
ありがとうございます。
私自身マクロがよく理解できていないと思います。
最近コマンドボタンの使い方を覚えた(つもり)ので、仕事に役立ててみようと
張り切っております。「オク」


「ウィンドウ枠の固定」でシート上部をスクロールしないようにして、
そこにボタンを配置するだけで良いと思う。
(???) 2013/10/18(金) 13:30

 こんにちは

 上下方向にしかウィンドウを固定したくないのに横方向にスクロールしたい場合とかは
 Worksheet_SelectionChange を使って選択したセルの横位置にボタンを移動したりは出来ますよ。

 縦横逆でも出来ますし、選択したセルのそばに移動して表示したりも出来ます。

 ただスクロールするだけでセルは選択したくないという場合はダメですけど。

(ウッシ) 2013/10/18(金) 14:03


 結構古い記事なので、誰かが誤ってあげてしまったのでは?

(稲葉) 2013/10/18(金) 14:13


 こんにちは、稲葉さん

 ホントですね「20080219085327」って、古い。
 気づかなかった。

(ウッシ) 2013/10/18(金) 14:17


 検索掛けたときに、誰かの役に立つのかもしれませんし、いいことだと思います!
 なので私も一つ提案。
 Sheetモジュールにコマンドボタンだけ配置したユーザーフォームを呼び出す用意し、コマンドボタン
 に該当するコードを実行させればよいかと。

(稲葉) 2013/10/18(金) 14:28


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.