
イントラ掲出用の社員向けのマニュアルを作成しております。
・30シート程度に分かれており、メインページからその30シートにジャンプできるようハイパーリンクの設定をしています。
テスト版を掲出したところ、すぐにメインページに戻れなくて不便だとの意見が出ました。シートタブをクリックすればそんなに手間をかけず移動できるとは思うのですがExcelの操作に不慣れな方も多く、とても簡単な方法を探しています。
そこでボタンを作成し、マクロの記録でマクロを登録し、ボタンをクリックすればメインページに戻れるようにしたいと思ってます。ただ縦や横に長いシートもあり、スクロールしても常に画面上に「戻るボタン」が表示されていればなお便利なのではと思ってます。
ウインド枠の固定もしくは画面分割で対応できるとは思いますが、見た目のスマートさから、ボタンが常に表示される方法が望ましいんですが、そんな事はできるのでしょうか?
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
'-----------------------------------
これは、シートにボタン(フォームツールで作ったもの)があれば、そのボタンが、シートの移動と共についていく、というものです。位置は、「上からと左から」で、お好きに数字を調整してください。
一味違うマクロかな(^^;
こんな便利なボタンをつくることができるんですね。
大変勉強になりました。
この方法で対応しようかと思っております。
ご回答心より感謝申し上げます。
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
-------------------------------------------
以上です。
はいそうなんです。私のPCの設定を変更すれば色々と便利な方法もあるのですが、他のPCの操作に不慣れな社員の方にでも対応できる方法を色々と探しておりました。この方法ですと上手に対応できそうです。とっても便利な方法をご教授下さいましてありがとうございました。
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
これで、起動時にボタンが追加され、終了時にはボタンが削除されます。
ボタン名等は修正して使ってください。
こんな方法でボタンをつくることができるのですね。
大変勉強になりました。
ご連絡が遅くなり大変失礼しましたが、ご回答本当にありがとうございました。
No.4
- 回答日時:
こんにちは。
ウィンドウ枠固定で、画面分割しているなら、上側のウィンドウに入れてあれば、いつも、そこにあるのだから良いような気がしますが。
私自身は、画面分割をしないので、画面の移動に付いて来るワークシートの中のボタンを使っています。でも、シートは1つだけで、同じものを各シートにつけるようなことはしませんね。
ボタンの種類は大きくわけると3つになります。
フォームのボタン
コントロールツールのボタン
特定のブックのみに現れるメニューのところに置くボタン(コマンドボタン)
30シートもあるのでしたら、#1さんのおっしゃるように、メニューに、「メインページ」と文字かボタン(ツールアイコン)が出ていたほうが良いような気もしてきますね。
この回答への補足
ご回答どうもありがとうございます。
色々とやっていたら#1の方が言われている機能がわかりました。ただこれは私のPCのエクセルではツールバーにユーザー設定ボタンを追加することができたのですが、他の社員の方には見えないですよね?
また「画面の移動に付いて来るワークシートの中のボタンを使っています。」とありますがこれはVBAで作られたものなのでしょうか?誠に恐縮ですが、ご参考までにご教授いただければと思います。
No.1
- 回答日時:
戻り先がトップページだけならツールバーにユーザーボタンを配置してマクロに割り当てておけばシート上ではないですが常にアクセスできるものとなりますがいかがでしょう。
また、VBAが使用できるのであればユーザーフォームをモーダレス表示するというのも一つの手段だと思います。
※マクロを無効にされるとお手上げですが・・・。
この回答への補足
早速のご回答ありがとうございます。
戻り先はトップページのみです。
「ツールバーにユーザーボタンを配置して」とありますが、これはどうやれば良いのでしょうか?
ヘルプで検索しても、意味がわかりませんとの返答でした。いままで聞いたことのない機能で、重ねてのご質問で大変恐縮なのですが、よろしくお願いします。
自分で補足説明しておきながら恐縮ですが、色々と操作していたらユザー設定ボタンを追加することができました。どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
- Word(ワード) Word のマクロについての質問です。 ボタンを押すと登録したブックマーク先にジャンプする機能(リン 3 2023/08/16 12:17
- Visual Basic(VBA) 【ExcelVBA】動的にボタン、ボタン名を生成できますか? 7 2022/04/08 12:54
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- マウス・キーボード キーボード設定で困っています。長文です。 2 2022/12/10 12:44
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) EXCEL ActiveX コマンドボタンで実行する前にいったんmsgBoxで確認を求めたい 1 2022/07/06 19:41
- Excel(エクセル) VBAで「クエリと接続」の画面を出せますか? 2 2022/10/24 13:35
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- Excel(エクセル) [貼り付けオプション]とは? 3 2022/04/17 08:15
このQ&Aを見た人はこんなQ&Aも見ています
-
excel スクロールしても常にボタンが表示される様にしたい。
PowerPoint(パワーポイント)
-
【Excel VBA】マクロボタンを表のスクロールやフィルタに左右されず固定できないですか?
Excel(エクセル)
-
エクセルで、マクロボタンの表示位置を固定
その他(Microsoft Office)
-
-
4
マクロを登録しているボタンが常に同じ位置にとどまるようにできるのでしょうか?
Excel(エクセル)
-
5
エクセルでオブジェクトを常に表記する
Excel(エクセル)
-
6
エクセルでマクロボタンを動かさないようにするには
Excel(エクセル)
-
7
Excelでワードアートや図を常に上部に表示させたい
Excel(エクセル)
-
8
WEBのようにスクロールすると付いてくる表
Excel(エクセル)
-
9
エクセルファイルを開く時、常に同じシートから開くようにするには?
Windows Vista・XP
-
10
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
11
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
12
Excel:コマンドボタンの移動
Excel(エクセル)
-
13
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
14
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
15
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
16
ユーザーフォームをホイールでスクロールする方法(Excel2000VBA)
Excel(エクセル)
-
17
エクセル ボタンに設定したマクロごとボタンをコピー
Excel(エクセル)
-
18
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
19
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
20
エクセルのコマンドボタンの位置をVBAで指定できませんか?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PPTのコマンドボタンがクリック...
-
押したボタンの位置取得(共通の...
-
Accessのコマンドボタンの立体...
-
Excel:コマンドボタンの移動
-
コマンドボタンで「終了ボタン...
-
ワードにタイマーを設定したい
-
mac版thunderbirdの迷惑メール
-
Wordでドラッグした文字列を括...
-
エクセル:マクロのコマンドボ...
-
エクセルVBAでOptionButtonのオ...
-
excelコマンドボタンと内容を別...
-
コマンドボタンを押すたびに大...
-
CyberLinkPowerDirectorでDVD作...
-
エミュレータでジョイパットを...
-
セル内のテキスト配置(縦位置...
-
エクセルVBA
-
オートフィルタで非表示セルの判定
-
エクセルでマクロを使わずに複...
-
エクセルの図形挿入について
-
チェックボックスで「いずれか1...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドボタンを押すたびに大...
-
Excel:コマンドボタンの移動
-
スクロールしてもボタンを常に...
-
Excel VBA --- コマンドボタ...
-
PPTのコマンドボタンがクリック...
-
押したボタンの位置取得(共通の...
-
Accessのコマンドボタンの立体...
-
コマンドボタンがあるかどうか...
-
エクセルVBAでOptionButtonのオ...
-
コマンドボタンで「終了ボタン...
-
エクセルVBA
-
ShowAllDataのエラーを回避したい
-
EXCELでNo.を変えて印刷したい
-
エクセルのコマンドボタンの位...
-
Wordでドラッグした文字列を括...
-
エクセルでマクロボタンを動か...
-
チェックボックスで「いずれか1...
-
エクセルVBA シート上にあるコ...
-
Excel VBA 複数のコマンドボ...
-
InDesignには「1段階戻る」の...
おすすめ情報