• ベストアンサー

スクロールしてもボタンを常に表示させたい。Excel2002

イントラ掲出用の社員向けのマニュアルを作成しております。 ・30シート程度に分かれており、メインページからその30シートにジャンプできるようハイパーリンクの設定をしています。 テスト版を掲出したところ、すぐにメインページに戻れなくて不便だとの意見が出ました。シートタブをクリックすればそんなに手間をかけず移動できるとは思うのですがExcelの操作に不慣れな方も多く、とても簡単な方法を探しています。 そこでボタンを作成し、マクロの記録でマクロを登録し、ボタンをクリックすればメインページに戻れるようにしたいと思ってます。ただ縦や横に長いシートもあり、スクロールしても常に画面上に「戻るボタン」が表示されていればなお便利なのではと思ってます。 ウインド枠の固定もしくは画面分割で対応できるとは思いますが、見た目のスマートさから、ボタンが常に表示される方法が望ましいんですが、そんな事はできるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

こんにちは。#4 Wendy02です。 1. # 特定のブックのみに現れるメニューのところに置くボタン(コマンドボタン) 一般的に、マクロを使わない方法としては、ボタンをブックにコピーして貼り付けます。しかし、それをされると、ブックをクローズしても、残るので、私は不愉快な気分になります。わたし流は、やはりマクロで付けます。 2. >「画面の移動に付いて来るワークシートの中のボタンを使っています。」とありますがこれはVBAで作られたものなのでしょうか? マクロです。いわゆる「どこでもボタン」です。 それぞれテクニックを公開します。 <標準モジュール> Alt +  F11 (Altを押しながらF11)を押すと、Visual Basic Editor 画面が出てきます。 次に、メニューの[挿入]-[標準モジュール]と開けて、クリックすると、画面が現れますので、コードを貼り付けます。 <ThisWorkbook> Visual Basic Editor 画面の左上側にプロジェクト(エクスプローラ)窓があります。その中に、ThisWorkbook をダブルクリックして現れる画面です。 1. '<標準モジュールに設定します。> '-------------------------------------------- Private Sub AddMenu() With Application.CommandBars("Worksheet Menu Bar") On Error Resume Next    .Controls("メインシート(&B)").Delete On Error GoTo 0 With .Controls.Add(Type:=msoControlButton, Temporary:=True)   .Caption = "メインシート(&B)"   .OnAction = "GoToMain"   .FaceId = 2073 '家の形の色付きのアイコン   .TooltipText = "メインシートに飛びます"   .Style = msoButtonIconAndCaption   .Visible = True End With End With End Sub Private Sub GotoMain() 'メインシートに飛ぶ Worksheets(_______)の中に入れる Application.Goto Worksheets("Sheet1").Range("A1") End Sub Sub Auto_Open()  'オープンと同時にメニュー設定  Call AddMenu End Sub Sub Auto_Close() 'このブックを閉じるとメニューも消える  With Application.CommandBars("Worksheet Menu Bar")  On Error Resume Next    .Controls("メインシート(&B)").Delete  On Error GoTo 0  End With End Sub '-------------------------------------------- Worksheets("Sheet1")のカッコの中に実際のシート名を書き換えてください。 2. '<ThisWorkbookモジュール> '----------------------------------- Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Dim myBtn As Object, WinTop As Double, WinLeft As Double On Error GoTo EndLine Set myBtn = Sh.Shapes("ボタン 1") If myBtn Is Nothing Then Exit Sub   WinTop = ActiveWindow.VisibleRange.Top   WinLeft = ActiveWindow.VisibleRange.Left   With myBtn     .Top = WinTop + 10  '上から     .Left = WinLeft + 550 '左から(右までで全部で650ぐらい)   End With EndLine: End Sub '----------------------------------- これは、シートにボタン(フォームツールで作ったもの)があれば、そのボタンが、シートの移動と共についていく、というものです。位置は、「上からと左から」で、お好きに数字を調整してください。 一味違うマクロかな(^^;

12tadashi
質問者

お礼

こんな便利なボタンをつくることができるんですね。 大変勉強になりました。 この方法で対応しようかと思っております。 ご回答心より感謝申し上げます。

その他の回答 (6)

  • taocat
  • ベストアンサー率61% (191/310)
回答No.7

またまたこんにちは。 No.2です。 言い忘れたことがありますので一言。 「Web」ツールバーは質問のブックでしか使わないでしょうから、別のブックを使うときは非表示にしておかないと邪魔になりますね。 ということで、ThisWorkBookモジュールに以下のコードを書いておく。 '--------------------------------------------- 'ブックを開いた時に「Web」ツールバーを表示 '--------------------------------------------- Private Sub Workbook_Open()  Application.CommandBars("Web").Visible = True End Sub '------------------------------------------------- 'ブックを閉じる時に「Web」ルールバーを非表示 '-------------------------------------------------- Private Sub Workbook_BeforeClose(Cancel As Boolean)  Application.CommandBars("Web").Visible = False End Sub ------------------------------------------- 以上です。  

12tadashi
質問者

お礼

はいそうなんです。私のPCの設定を変更すれば色々と便利な方法もあるのですが、他のPCの操作に不慣れな社員の方にでも対応できる方法を色々と探しておりました。この方法ですと上手に対応できそうです。とっても便利な方法をご教授下さいましてありがとうございました。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.5

>他の社員の方には見えないですよね? マクロでコマンドバーを作成すると、任意の位置に置くことが出来ます。 標準モジュールに下記を貼付けます Sub cBarSetup() Call cBarDel 'コマンドバー名の変更は "いどうぼたん" と書かれた3カ所を同じ名前にしてください。 With Application.CommandBars.Add(Name:="いどうぼたん", Position:=msoBarFloating) 'Caption = "name" でボタン名を修正できます。 'OnAction = "macro" で実行するマクロを指定。 With .Controls.Add(Type:=msoControlButton) .Caption = "目次" .OnAction = "Jump4Main" .Style = msoButtonCaption End With With .Controls.Add(Type:=msoControlButton) .BeginGroup = True .Caption = "Top" .OnAction = "Jump4Top" .Style = msoButtonCaption End With End With Application.CommandBars("いどうぼたん").Visible = True End Sub Sub cBarDel() On Error Resume Next 'コマンドバーの削除 Application.CommandBars("いどうぼたん").Delete On Error GoTo 0 End Sub Sub Jump4Main() 'メニューページ設定 ThisWorkbook.Sheets("Main").Select 'ActiveWindow.ScrollColumn = 1 'ActiveWindow.ScrollRow = 1 End Sub Sub Jump4Top() '解説ページのトップ位置 ThisWorkbook.Activate ActiveWindow.ScrollColumn = 1 ActiveWindow.ScrollRow = 1 End Sub そして、Thisworkbook モジュールに下記を。 Private Sub Workbook_Open() Call cBarSetup End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) Call cBarDel End Sub これで、起動時にボタンが追加され、終了時にはボタンが削除されます。 ボタン名等は修正して使ってください。

12tadashi
質問者

お礼

こんな方法でボタンをつくることができるのですね。 大変勉強になりました。 ご連絡が遅くなり大変失礼しましたが、ご回答本当にありがとうございました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 ウィンドウ枠固定で、画面分割しているなら、上側のウィンドウに入れてあれば、いつも、そこにあるのだから良いような気がしますが。 私自身は、画面分割をしないので、画面の移動に付いて来るワークシートの中のボタンを使っています。でも、シートは1つだけで、同じものを各シートにつけるようなことはしませんね。 ボタンの種類は大きくわけると3つになります。  フォームのボタン  コントロールツールのボタン  特定のブックのみに現れるメニューのところに置くボタン(コマンドボタン) 30シートもあるのでしたら、#1さんのおっしゃるように、メニューに、「メインページ」と文字かボタン(ツールアイコン)が出ていたほうが良いような気もしてきますね。

12tadashi
質問者

補足

ご回答どうもありがとうございます。 色々とやっていたら#1の方が言われている機能がわかりました。ただこれは私のPCのエクセルではツールバーにユーザー設定ボタンを追加することができたのですが、他の社員の方には見えないですよね? また「画面の移動に付いて来るワークシートの中のボタンを使っています。」とありますがこれはVBAで作られたものなのでしょうか?誠に恐縮ですが、ご参考までにご教授いただければと思います。

  • komet163
  • ベストアンサー率51% (22/43)
回答No.3

こんにちは。 ハイパーリンクでジャンプしているなら、 「Web」ツールバーの『←戻る』で、 ジャンプ元(この場合メインページ)に戻ります。 「Web」ツールバーは、 [表示]メニュー → [ツールバー] → [Web] で 表示できます。

12tadashi
質問者

お礼

ご回答どうもありがとうございます。 参考にさせていただきます。

  • taocat
  • ベストアンサー率61% (191/310)
回答No.2

こんにちは。 一番簡単な方法は、「Web」ツールバーを表示しておくことです。 「Web」ツールバーには、IEと同じ戻るボタンがついてますのでそれをクリックすると元のシートへ戻ります。 メニューバーの「表示」>「ツールバー」>「Web」ツールバー 以上です。

12tadashi
質問者

お礼

ご回答どうもありがとうございました。 参考にさせて頂きます。 この方法がわかりやすそうです。 ありがとうございました。

  • galoon
  • ベストアンサー率28% (38/133)
回答No.1

戻り先がトップページだけならツールバーにユーザーボタンを配置してマクロに割り当てておけばシート上ではないですが常にアクセスできるものとなりますがいかがでしょう。 また、VBAが使用できるのであればユーザーフォームをモーダレス表示するというのも一つの手段だと思います。 ※マクロを無効にされるとお手上げですが・・・。

12tadashi
質問者

お礼

自分で補足説明しておきながら恐縮ですが、色々と操作していたらユザー設定ボタンを追加することができました。どうもありがとうございました。

12tadashi
質問者

補足

早速のご回答ありがとうございます。 戻り先はトップページのみです。 「ツールバーにユーザーボタンを配置して」とありますが、これはどうやれば良いのでしょうか? ヘルプで検索しても、意味がわかりませんとの返答でした。いままで聞いたことのない機能で、重ねてのご質問で大変恐縮なのですが、よろしくお願いします。

関連するQ&A

  • 【Excel】 40枚のシートタブを表示する方法

    こんにちは。 ファイルに40枚ものシートができてしまいました。 離れたシートに移動するのにスライドバーで該当シートタブを表示してからシートをクリックしています。 「シートの選択」も別のウインドーを表示しなければならないので同じくらい手間が掛かります。 Windowsのタスクバーを二段表示するように、Excelのシートタブも2段表示するなどして、 常に全てのシートタブが表示できる方法は無いでしょうか。 ご存じでしたら教えてください。 シート名はできるだけ短くしています。 Excelは2003です。

  • Excelで、ボタンをクリックすると非表示のオブジェクトが表示される

    Excelのフォームで作ったボタンやオブジェクトをクリックすると、 同じシート上に非表示にしていたテキストボックスやウィンドが表示される、ということは可能でしょうか? できればExcel2003で使いたいのですが、2003でオブジェクトの非表示機能があったか不明です。(現在2007を使っているため) 関数で可能であれば良いですが、マクロを使って可能であればマクロを使ってもかまいません。が、あまり詳しくなのでマクロも教えていただけると助かります。 よろしくお願いします。

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

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

  • excel2010でボタンが反応しなくなった?

    EXCEL2010でシート上に作成したボタンがある時期から反応しなくなりました。 原因がわかりません。 VBAエディタで開いて、実行(f5)すると実行できます。 どうしたら元に戻るか、どなたかわかる方、お願いします。  ・元に戻る…「Excelのシート上からボタンをクリックするだけで実行できるようになる」 1.処理自体は単純でシート上に作成したコマンドボタンをクリックすると   標準モジュールに記述したマクロを実行します。   Sheet1のコード (CommandButton1_Click)      Call [標準モジュールSubの名称]ItiranGet   ※1 VBAのコードを開いた状態で、上記のCall文、標準モジュールで      実行(F5)すると、実行できます。 2.マクロのセキュリティは、下記に設定しています。   すべてのマクロを有効にする よろしくお願いいたします。

  • マクロ ボタンを押すと各シートがアクティブになる

    1シートにボタンが23個あります。 (ボタンをクリックしてみると、ボタン1、ボタン2と名前ボックスに表示されます。) ボタン1を押すと、シート2をアクティブに ボタン2を押すと、シート3をアクティブに ボタン10を押すと、シート11をアクティブに といった風なマクロを作成したいと考えています。 また、今回はボタンのあるシート含め24ページですが、 23や25の時もあり、最終ページがばらばらです。 「シートが終われば、また、ボタンが終わればその作業をやめる」 ↑うまい言い回しが思いつきませんが... といった指示も記憶させたいです。 分かる方いらっしゃいましたらよろしくお願いいたします。

  • EXCELのボタンとハイパーリンクについて

    こんにちは。よろしくお願いします。 EXCELの97でも2000でも2002でも構わないのですが、 EXCELのフォームツールバーある「ボタン」をつかって ボタンをクリックすると特定のフォルダにジャンプする という操作をしたいのですが・・・・ 今は、とりあえず任意のセルに、ハイパーリンクを作成し、 C:\My Documents\表計算 というような、ハイパーリンクを作っていて、実行すると Explorerが起動して、表計算フォルダに中に入っている ファイルを選択するという形です。 そして、キー登録のマクロで、ハイパーリンクのところを クリックする。というのを作成し、ボタンをハイパーリンクの上に 作成し(ハイパーリンクの文字をボタンで隠しているような状態です) ボタンにマクロを登録しているような状態です。(分かっていただけますか?) そこで、質問は 「ボタンに直接ハイパーリンクの記憶をさせたい。」 (任意のセルにハイパーリンクを作らなくてもいいようにしたい) ということです。きっとマクロを記述できれば良いのでしょうが、 全くマクロに対しては、知識がありません。 意味がわからなければ、いくらでも、補足しますので、よろしくお願いします。

  • EXCEL2007 ボタン

    EXCEL2007 ボタン 既出でしたら、ごめんなさい。検索してのですが、見つけられませんでした。 ワークシートに500件くらいのデータがあり、ボタンを作成して入力させています。 例えば、ボタンの1をクリックすると、セルに東京、2で神奈川、3で埼玉などです。 ボタンを30個ほど作成しました。 ボタン1のマクロに、 Sub 東京() ' ActiveCell.FormulaR1C1 = "東京" ActiveCell.Offset(0, 1).Select End Sub としています。 Module1に、東京を埼玉に変更して、コピペして順に増やして行くと5個くらいでその後は追加できません。 ボタンは作成できるのですが、マクロが30個まで登録できないのですが、方法をご享受していただきたくお願いいたします。 Module2、3と追加作成すればよいのでしょうか? 非常にレベルが低く恐縮ですが、よろしくお願いいたします。

  • ハイパーリンクの表示について

    エクセル2003でハイパーリンクを使うとエクセルのシートに青い文字で リンク先の名前が表示されます。 この文章を変えることはリンクの編集でできます。 ところが先日、ある同僚がリンクの青い文字ではなく、それをボタン表示?にしてました。 よくよく見るとそれはボタンではなく、単に図であり、そのボタンはシートに固定されてなく、どこでも動かせます。 しかし不思議なのは、どうやってハイパーリンクの表示をボタンにしたのでしょうか? ちなみにそのボタンを右クリックしてハイパーリンクの編集を見てみると、リンク文字入力がしろくハッチングされていて、入力できないようになってました。これは何かのマクロなのでしょうか? もしこのような事が簡単にできるなら教えて下さい。 ただし、このボタン、単に図なのでシートの何処にでも移動してしてしまうため、資料としては危険かもしれません。

  • エクセル ボタンへのマクロのやり方

    エクセルを使用して、エクセル内に作成した"ボタン"をクリックすると指定のURLへ飛べるようにしたいのですが、どうやったらいいのでしょうか? 通常セル内に文字を入力してハイパーリンクをやればURLに飛べると思いますが、"ボタン"を付けた場合右クリックをしてもハイパーリンクの文字が出てきません。 マクロを使えば出来ると思うのですが、マクロもホントのホントに初心者なのでよく分かりません。 どなたか詳しく教えて頂けないでしょうか。 よろしくお願いいたします。

  • Excel2000のスクロール

    Excel2000の質問です。 資料を作成していたのですが、上向き三角のスクロールボタンをクリックすると上部にスクロールされずシートの一番下に移動してしまいます。そのためシートの先頭部分が表示できなくなっています。 先頭部分も表示されるように、上部までスクロールするにはどうすればいいのでしょうか。ウィンドウ枠の固定もしていませんし、アプリケーションもフリーズしていません。 考えられる原因、対処法ご教授願います。 よろしくお願いいたします。

専門家に質問してみよう