dポイントプレゼントキャンペーン実施中!

エクセルのシートに貼り付けたマクロボタンを、シートのスクロールにかかわらず、位置を変えないようにしたいのですが、どうすればよいのでしょうか。ボタンの順序の背面とか前面とかの指定がその目的かと思ったんですが・・・

A 回答 (5件)

>SelectionChangeとWorkSheetActivateの両方に貼り付けてみましたところ


私の回答はSelectionChangeイベントProcだけです。
両方にやらないで下さい。
もう一度私が解答コードををコピーしてやって見ましたが、エラーはでず、動きも予想どおりでした。
旨く行かず、原因が判らないようでしたら、回答はないものとしてください。
    • good
    • 1
この回答へのお礼

ありがとうございます。
エクセルのバージョンの違いの所為ではないでしょうか。私のエクセルは、2002です。

お礼日時:2004/08/26 10:11

これが正統な回答かどうか分ちませんが


例えばSheet1のSelectionChangeイベントを下記とする。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Worksheets("sheet1").CommandButton1.Top = Rows(ActiveWindow.ScrollRow).Top + 2
End Sub
画面がスクロールされても、いつも右上に現れています。
上例ではシートにコマンドボタンを1つ}貼りつけ、
ツール-マクロ-VBEでVBEの画面になる。VBAProjectのSheet1をダブルクリックするとVBE画面になり、GeneralをWorksheet、DeclarationをSelectionChangeを選ぶ。
そして上記中間1行を貼りつける。
デザインモードを脱して、シートに戻る。
シート内の上下のアクチブセルの移動に対してはいつもボタンは右上に現れている。

この回答への補足

仰せの通り、ご指導いただいたコマンドをSelectionChangeとWorkSheetActivateの両方に貼り付けてみましたところ、どちらで実行時エラー438で「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」というエラーメッセージが出ました。

補足日時:2004/08/25 20:26
    • good
    • 0

 


汎用性を求めるのであれば

ボタンを配置したUserFormをモードレス

で利用するすることをお奨めします。
 
    • good
    • 0
この回答へのお礼

モードレスで利用とは具体的にどうすればよいのでしょうか

お礼日時:2004/08/24 18:24

ボタンの順序の背面や前面というのは、画像やボタン等が


どちらが手前に表示されるかというものです。
貼りつけたのが後の物ほど手前に表示されるのですが
その順番を変えたいときに使用します。
例:画像の中にボタンを作り、後で画像を他のものに
変更すると画像が手前にきてボタンが消えます。
そのような時に画像を後にしてボタンを見えるように
したりします。
スクロールしてもボタンの位置をそのままにする方法
ですが、お望みのものとは違うとは思いますが、
ボタンを一番上や左端に作成し、ウインドウ枠の
固定をすると上下のみや左右のみの移動の場合
ボタンが表示されたままということはできます。
    • good
    • 0
この回答へのお礼

ありがとうございました。やはりこれしか方法はないのでしょうか。

お礼日時:2004/08/24 18:22

アクセスなら可能だと思いますが、エクセルではできないかと...



ツールバーに登録する形なら可能です。
こちらなら「表示」「ツールバー」「ユーザー設定」で
まず新規ツールバーを作成、ここにコマンドからマクロボタンをドラッグして追加
ボタンを右クリックしてマクロの登録になります。
ボタンは状態に応じて、文字列か絵を選択表示してください。
    • good
    • 0
この回答へのお礼

ありがとうございました。やはりこれしか方法はないのでしょうか。

お礼日時:2004/08/24 18:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!