プロが教えるわが家の防犯対策術!

イントラ掲出用の社員向けのマニュアルを作成しております。

・30シート程度に分かれており、メインページからその30シートにジャンプできるようハイパーリンクの設定をしています。

テスト版を掲出したところ、すぐにメインページに戻れなくて不便だとの意見が出ました。シートタブをクリックすればそんなに手間をかけず移動できるとは思うのですがExcelの操作に不慣れな方も多く、とても簡単な方法を探しています。

そこでボタンを作成し、マクロの記録でマクロを登録し、ボタンをクリックすればメインページに戻れるようにしたいと思ってます。ただ縦や横に長いシートもあり、スクロールしても常に画面上に「戻るボタン」が表示されていればなお便利なのではと思ってます。

ウインド枠の固定もしくは画面分割で対応できるとは思いますが、見た目のスマートさから、ボタンが常に表示される方法が望ましいんですが、そんな事はできるのでしょうか?

A 回答 (7件)

こんにちは。

#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

'-----------------------------------

これは、シートにボタン(フォームツールで作ったもの)があれば、そのボタンが、シートの移動と共についていく、というものです。位置は、「上からと左から」で、お好きに数字を調整してください。

一味違うマクロかな(^^;
    • good
    • 1
この回答へのお礼

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

お礼日時:2005/09/12 08:21

またまたこんにちは。

 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

-------------------------------------------
以上です。
 
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/09/12 08:28

>他の社員の方には見えないですよね?



マクロでコマンドバーを作成すると、任意の位置に置くことが出来ます。

標準モジュールに下記を貼付けます
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

これで、起動時にボタンが追加され、終了時にはボタンが削除されます。
ボタン名等は修正して使ってください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/09/12 08:20

こんにちは。



ウィンドウ枠固定で、画面分割しているなら、上側のウィンドウに入れてあれば、いつも、そこにあるのだから良いような気がしますが。

私自身は、画面分割をしないので、画面の移動に付いて来るワークシートの中のボタンを使っています。でも、シートは1つだけで、同じものを各シートにつけるようなことはしませんね。

ボタンの種類は大きくわけると3つになります。

 フォームのボタン
 コントロールツールのボタン
 特定のブックのみに現れるメニューのところに置くボタン(コマンドボタン)

30シートもあるのでしたら、#1さんのおっしゃるように、メニューに、「メインページ」と文字かボタン(ツールアイコン)が出ていたほうが良いような気もしてきますね。

この回答への補足

ご回答どうもありがとうございます。
色々とやっていたら#1の方が言われている機能がわかりました。ただこれは私のPCのエクセルではツールバーにユーザー設定ボタンを追加することができたのですが、他の社員の方には見えないですよね?

また「画面の移動に付いて来るワークシートの中のボタンを使っています。」とありますがこれはVBAで作られたものなのでしょうか?誠に恐縮ですが、ご参考までにご教授いただければと思います。

補足日時:2005/09/09 13:41
    • good
    • 0

こんにちは。


ハイパーリンクでジャンプしているなら、
「Web」ツールバーの『←戻る』で、
ジャンプ元(この場合メインページ)に戻ります。

「Web」ツールバーは、
[表示]メニュー → [ツールバー] → [Web] で
表示できます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/09/09 15:39

こんにちは。



一番簡単な方法は、「Web」ツールバーを表示しておくことです。

「Web」ツールバーには、IEと同じ戻るボタンがついてますのでそれをクリックすると元のシートへ戻ります。


メニューバーの「表示」>「ツールバー」>「Web」ツールバー


以上です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/09/09 15:32

戻り先がトップページだけならツールバーにユーザーボタンを配置してマクロに割り当てておけばシート上ではないですが常にアクセスできるものとなりますがいかがでしょう。


また、VBAが使用できるのであればユーザーフォームをモーダレス表示するというのも一つの手段だと思います。

※マクロを無効にされるとお手上げですが・・・。

この回答への補足

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

補足日時:2005/09/09 13:14
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/09/09 13:48

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A