[[20240903114303]] 『リストで選択したシートに移動をしたい』(mikan) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『リストで選択したシートに移動をしたい』(mikan)

このたび、1つのExcelブック内に大量のシートがある状況で、
シートの移動を効率的に行うため、リストを用いての移動を希望しております。

理想としましては、
リストからシート名を選択した瞬間にシートに遷移できますと幸いでございますが、
リスト選択後に移動ボタンなどを押して移動いただくことでも構いません。

何卒、ご教授のほど、よろしくお願い申し上げます。

< 使用 Excel:Microsoft365、使用 OS:Windows10 >


 シート見出しの左側の◀▶部分で右クリックするとシートの選択のダイアログが表示されるが
 それではどうだろうか?
(ねむねむ) 2024/09/03(火) 11:52:50

エクセルのウィンドウ下部でシートが並んでいる場所の一番左で<>が表示されている辺りで右クリック
→シート一覧が出るので選択
→そのシートにジャンプ

リストじゃないけれど。
被ったな。
(ゆたか) 2024/09/03(火) 11:56:55


ご回答いただき、ありがとうございます。

すごく直感的にその資料を触れるようにしたいため、
Excelシート内でできればと思います。

ただ、やりたい動作としては、みなさんのおっしゃっている通りです!

(mikan) 2024/09/03(火) 12:03:02


また、追記なのですが、リストごとに選択ができるシートを制限したいとも考えております。
Excelの標準にある左下の機能では全シート選択可能になるため、できれば避けたいです....。


リスト1
 シートA
 シートB
 シートC
 シートD

リスト2
 シートB
 シートC

後出しで申し訳ないのですが、よろしくお願いいたします。
(mikan) 2024/09/03(火) 12:06:41


複数のリストを作成し、各シートに配置をする予定です。
(mikan) 2024/09/03(火) 12:10:33

「シートの目次 VBA」でgoogle検索すると、
サンプルコードがたくさんヒットしますよ
1枚、目次シートをつくったら、
それを複製してリストとして編集。
(四方山) 2024/09/03(火) 12:15:21

リストってプルダウンリストってことか。
リンクつけれましたっけ。
ともかく、ちょっとズレた回答でしたね、すいません。
(四方山) 2024/09/03(火) 12:19:15

 例えばA1セルに入力規則のリストでシート名を選択表示するとしてB1セルに
 =IF(A1="","",HYPERLINK("#'"&A1&"'!A1","ジャンプ"))
 と入力するとA1セルでシート名を選択するとB1セルにジャンプと表示され、そこをクリックするとそのシートのA1セルにジャンプする。
(ねむねむ) 2024/09/03(火) 13:09:55

 リスト の詳しい定義がされていないので、勝手に1行目のA列から横方向に夫々シート名がリストされた入力規則が設定されていると想定。

 入力規則が設定されているシートのコードモジュールに

 Private Sub Worksheet_Change(ByVal Target As Range)
     If Intersect(Target, Rows(1)) Is Nothing Then Exit Sub
     If Target = "" Then Exit Sub
     If Evaluate("isref('" & Trim(Target) & "'!a1)") Then
         Application.Goto Sheets(Target.Value).[a1]
     End If
 End Sub
(jindon) 2024/09/03(火) 14:45:22

 >このたび、1つのExcelブック内に大量のシートがある状況で、								
 >シートの移動を効率的に行うため、リストを用いての移動を希望しております。								

 具体的なシート枚数を教えていただけると、より適切なアドバイスが可能です。								

 ●シートの枚数に応じた提案を以下に示します								

 1. 数十枚のシート								
     少数から中規模のプロジェクト(例えば、10〜50シート)であれば、								
     関数処理の方法で十分です。								

 2. 数百枚のシート								
     中規模から大規模のプロジェクト(例えば、50〜200シート)であれば、								
     Worksheet_Changeイベントを使用する方法がおすすめです。								
     HYPERLINK関数と違ってクリックする人手間が省けるため便利です。								

 3. 数千枚近いシートまで								
     非常に大規模なプロジェクト(例えば、200〜1000シート)とかなら								
     2連動プルダウン機能を使用するのが非常に便利です。								

 >すごく直感的にその資料を触れるようにしたいため、								
 >Excelシート内でできればと思います。								

 関数だけで処理をするのか、VBAも使用するのか?によって								
 処理の効率が変わりますね。まだ検討中でしょうか?								

 >複数のリストを作成し、各シートに配置をする予定です。								
 >また、追記なのですが、リストごとに選択ができるシートを制限したいとも考えております。								

 リストごとにシートを制限するという案もありますが、シートタブに同じような								
 カテゴリを並べるのが一般的ですので、制限の必要性が低いかもしれません。								

 以下の方法を提案させていただきます								

 ・2連動プルダウンとHYPERLINK関数の組み合わせ方法								
 ・2連動プルダウンとWorksheet_Change イベントの組み合わせ方法								
 ・2連動プルダウンとWorksheet_Change イベントを使用し、								
   プルダウン操作によってカテゴリ別のシートのみ表示する方法								

 それでは、がんばってください。
(あみな) 2024/09/04(水) 08:29:33

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.