こんばんは。
エクセルでのボタンの表示/非表示についての質問です。
シートA、B、C、があり、AのシートにもBのシートにもCのシートへジャンプするハイパーリンクが設定してあります。
シートCにAボタン、Bボタンがあり、ジャンプしてきたシートによってボタンを表示/非表示にしたいと考えています。
【Aシートからジャンプして来た場合】
Cシート:Aボタンは表示、Bボタンは非表示
【Bシートからジャンプして来た場合】
Cシート:Aボタンは非表示、Bボタンは表示
これができる方法を模索中です。
どうぞよろしくお願い致します。
No.1
- 回答日時:
ボタンの表示を切り替え...もちろん可能ですが、シンプルにボタンは
1つにしてみては?
1. 以下のコードをそれぞれのモジュールにコピペします。
' // ■ ThisWorkbook モジュール
' // ハイパーリンク元のシートを参照しておくオブジェクト変数
Public gPrevSheet As Worksheet
' // ハイパーリンクがクリックされたとき発生するイベント
Private Sub Workbook_SheetFollowHyperlink( _
ByVal Sh As Object, _
ByVal Target As Hyperlink _
)
Set gPrevSheet = Sh
End Sub
' // ■ 標準モジュール
Sub GoBackSheet()
On Error Resume Next
ThisWorkbook.gPrevSheet.Activate
Set ThisWorkbook.gPrevSheet = Nothing
End Sub
2. C シートにボタンを配置し、キャプションを「戻る」にする
3. 2. のボタンにマクロ「GoBackSheet」を割り当てる
この回答への補足
早速のご解答ありがとうございます。
説明が足りなかったようですので補足致します。
CシートのAボタン、Bボタンはジャンプ元に戻るためのボタンではなく、それぞれに別のマクロが組まれています。
ですので、Aシートからジャンプして来た場合はCシートのAボタンだけを表示、Bシートからジャンプして来た場合はCシートのBボタンだけを表示させるようにしたいのです。
もし可能であれば、ハイパーリンクをクリックした時以外は両ボタンとも非表示にする方法も知りたいです。
ご面倒をおかけ致しますが、よろしくお願い致します。
No.2
- 回答日時:
A,Bボタンが飛んできたシートに戻るためだけの役目なら、
A、Bボタン両方なくてもエクセルの機能だけでできますが。
「表示」>「ツールバー」>「Web」をクリック
「Web」ツールバーが表示されるので、
「標準」ツールバー等のある画面上部にドラッグしておく
「Web」ツールバーには、インターネットエクスプローラなどでよく使う「戻る」「進む」ボタンがある
シート1からシート3へハイパーリンクで飛んだ後、
シート1へ戻りたければ、
「Web」ツールバーの「戻る」ボタンで戻れます。
シート2からシート3へ飛んだ場合も同様。
これに限らず、どのシートでもハイパーリンクで飛んだら
「戻る」ボタンで元のシートへ戻れるということです。
A,Bボタンが「戻る」ためのものではなく他のことをするためのものでしたら、ご容赦願います。
この回答への補足
早速のご解答ありがとうございます。
CシートのAボタン、Bボタンはジャンプ元に戻るためのボタンではなく、それぞれに別のマクロが組まれています。
ですので、Aシートからジャンプして来た場合はCシートのAボタンだけを表示、Bシートからジャンプして来た場合はCシートのBボタンだけを表示させるようにしたいのです。
もし可能であれば、ハイパーリンクをクリックした時以外は両ボタンとも非表示にする方法も知りたいです。
ご面倒をおかけ致しますが、よろしくお願い致します。
No.3
- 回答日時:
> 「Web」ツールバーには、インターネットエクスプローラなどでよく
> 使う「戻る」「進む」ボタンがある
なるほど。。これならマクロなしでもできますね!
参考ですが、これをマクロから利用するコードです。
' // コマンド[戻る]を実行
Sub GoBack()
On Error Resume Next
Application.CommandBars.FindControl(Id:=1017).Execute
End Sub
' // コマンド[進む]を実行
Sub GoForward()
On Error Resume Next
Application.CommandBars.FindControl(Id:=1018).Execute
End Sub
この回答への補足
早速のご解答ありがとうございます。
CシートのAボタン、Bボタンはジャンプ元に戻るためのボタンではなく、それぞれに別のマクロが組まれています。
ですので、Aシートからジャンプして来た場合はCシートのAボタンだけを表示、Bシートからジャンプして来た場合はCシートのBボタンだけを表示させるようにしたいのです。
もし可能であれば、ハイパーリンクをクリックした時以外は両ボタンとも非表示にする方法も知りたいです。
ご面倒をおかけ致しますが、よろしくお願い致します。
No.4ベストアンサー
- 回答日時:
すみません、激しく勘違いしたようで。
。イベントの発生順序は、Activate --> FollowHyperlink です。したがって、
Activate イベントで一度両方のボタンを非表示にし、FollowHyperlink
イベントでどのシートのリンクがクリックされたかで分岐させて、必要な
ボタンを表示させればよいかと。
' // ■ ThisWorkbook モジュール
' // シートがアクティブになったとき発生するイベント
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Worksheets("C").Shapes("ボタンA").Visible = False
Worksheets("C").Shapes("ボタンB").Visible = False
End Sub
' // ハイパーリンクがクリックされたとき発生するイベント
Private Sub Workbook_SheetFollowHyperlink( _
ByVal Sh As Object, _
ByVal Target As Hyperlink _
)
Select Case Sh.Name
Case "A": Worksheets("C").Shapes("ボタンA").Visible = True
Case "B": Worksheets("C").Shapes("ボタンB").Visible = True
End Select
End Sub
余談ですが、、、
> それぞれに別のマクロが組まれています。
OnAction を使って割り当てるマクロを動的に切り替えることもできます。
ありがとうございます!!できました!!!
感謝感激雨あられです!(笑)
まさかこんなやり方があるとは。目からうろこです。
非常に図々しいお願いなんですが、
>OnAction を使って割り当てるマクロを動的に
>切り替えることもできます。
このやり方も教えて頂ければ幸いです。
ちなみにAボタンは並び替え、Bボタンは集計のマクロが組まれています。
誠に勝手なお願いですが、どうぞよろしくお願い致します。
No.5
- 回答日時:
> このやり方も教えて頂ければ幸いです。
ん? ヘルプで OnAction を調べてみればわかると思いますよ。
FollowHyperlink イベントを下記のようにするとか。
' // ハイパーリンクがクリックされたとき発生するイベント
Private Sub Workbook_SheetFollowHyperlink( _
ByVal Sh As Object, _
ByVal Target As Hyperlink _
)
Select Case Sh.Name
Case "A": Worksheets("C").Shapes("ボタンA").OnAction = "マクロA"
Case "B": Worksheets("C").Shapes("ボタンA").OnAction = "マクロB"
End Select
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
エクセル 非表示のシートをハイパーリンクで表示できますか?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スクロールしてもボタンを常に...
-
PPTのコマンドボタンがクリック...
-
Excel:コマンドボタンの移動
-
コマンドボタンを押すたびに大...
-
エミュレータでジョイパットを...
-
押したボタンの位置取得(共通の...
-
エクセルVBA
-
[ExcelVBA] コマンドボタンを押...
-
エクセル2007VBAでコマンド...
-
コマンドボタンがきかなくなる
-
コマンドボタンがあるかどうか...
-
ShowAllDataのエラーを回避したい
-
Excel VBA 複数のコマンドボ...
-
コマンドボタンでレコード移動
-
エクセルVBA シート上にあるコ...
-
Excel VBA --- コマンドボタ...
-
コマンドボタンの画像も拡大表...
-
MS_AccessからPDFファイルを開...
-
オートフィルタで非表示セルの判定
-
ワードの「コントロールツール...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドボタンを押すたびに大...
-
Excel:コマンドボタンの移動
-
スクロールしてもボタンを常に...
-
押したボタンの位置取得(共通の...
-
コマンドボタンがあるかどうか...
-
Accessのコマンドボタンの立体...
-
PPTのコマンドボタンがクリック...
-
ShowAllDataのエラーを回避したい
-
エクセルVBAでOptionButtonのオ...
-
エクセルVBA
-
EXCELでNo.を変えて印刷したい
-
Excel VBA --- コマンドボタ...
-
エクセルVBA シート上にあるコ...
-
Wordでドラッグした文字列を括...
-
Accessユーザーフォームでコマ...
-
コマンドボタンがきかなくなる
-
excelコマンドボタンと内容を別...
-
ROCKET MOUSEの使い方
-
コマンドボタンで「終了ボタン...
-
エミュレータでジョイパットを...
おすすめ情報