エクセル実践塾 > エクセル実践塾2016

シート名の一覧を使って、 右クリックしたシートを表示できるようにしたい

 

右クリックしたときに実行されるサブルーチンを作ります

次のようなサブルーチンを、indexシートに用意します。

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
 Dim sheetName As String
 sheetName = Target.Value

 On Error Resume Next

 Dim ws As Worksheet
 Set ws = ThisWorkbook.Sheets(sheetName)

 If Not ws Is Nothing Then
  ws.Activate
 End If
End Sub

このコードの目的は、右クリックされたセルの値に基づいて、ワークシートをアクティブにすることです。


 

 

①右クリックで実行されるマクロなので、特定のシートでの実行に限定します

作例では、シート名の一覧は、「index」シートに作られるので、そのワークシート専用のマクロにします。

シート名をダブルクリックすると、そのワークシート専用のコード画面が表示されます。

オブジェクトを「Worksheet」にして、プロシージャから「BeforeRightClick」を選びます。

 

②このコードは、特定のワークシートのイベントである「Worksheet_BeforeRightClick」を使用しています

これは、右クリックしたときに実行されるサブルーチンです。

自動的に用意される引数「Target」は、右クリックされたセルの範囲を表します。もう一つの引数「Cancel」は、右クリックの操作をキャンセルするために使用されます。

Dim sheetName As String
sheetName = Target.Value

これにより、右クリックされたセルの値が変数「sheetName」に代入されます。

③On Error Resume Next

これは、ワークシートが存在しない場合にエラーが発生することを防ぐためです。次に、以下の行が実行され、右クリックされたセルの値に対応するワークシートが検索されます。

Set ws = ThisWorkbook.Sheets(sheetName)

もしワークシートが存在しない場合、変数「ws」は「Nothing」になります。以下の行が、ワークシートが存在する場合にアクティブにするためのものです。

If Not ws Is Nothing Then
 ws.Activate
End If

これにより、存在するワークシートがアクティブになります。

④このコードの目的は、ユーザーが右クリックされたセルの値に基づいて、該当するワークシートをすばやくアクセスできるようにすることです

   
   
   
   
   
   
   
   
   
   

   

   
 

 

●「右クリックされたセルの値に基づいて、ワークシートをアクティブにする」マクロを作る動画です

Dyson(ダイソン)オンラインストア

関連する他のページ

『名前』に右隣セルの『ふりがな』を登録したい
簡単なマクロを作って、ふりがな登録する方法があります

日別のシフト表から、 個人の勤怠データを抜き出して表示したい
日別勤怠表のシート名を数式で作りながら、 VLOOKUP関数で参照する方法があります

シート名のクリックで、必要なシートを簡単に表示したい
ジャンプ先のシート名がセルに入力されている場合には、 ハイパーリンクを設定することで、そのシートを簡単に表示することができます

前日シートのテーブルを、当日の新規シートでも使いたい
前日シートのコピーで、当日の新規シートを作り、そのデータ範囲だけを削除する方法があります

ブックを開いたときの新規シート自動挿入を、1日1枚に制限したい
新規シートの名前に日付を加え、マクロ実行時にその存在の有無を確認するようにします

ブックを開いたときに、新規シートを先頭へ挿入したい
ThisWorkbookのOpenプロシージャに該当コードを記述します

編集シートの前に新規シートを挿入したい
Shift+F11キーで行えます

他のブックにあるシートを簡単に表示したい
ハイパーリンクによるジャンプ先は、他のブックのシートも対象にできます

シート名のクリックで、必要なシートを簡単に表示したい
ジャンプ先のシート名がセルに入力されている場合には、 ハイパーリンクを設定することで、そのシートを簡単に表示することができます

必要なシートを簡単に表示したい
任意のセルにシートと同じ名前をつけておけば、名前ボックスのリストからそれを選んで表示できるようになります

班名をクリックすると、そのメンバーリストが表示されるようにしたい
セル範囲に名前を定義すれば、その名前へのハイパーリンクを設定することで、そこへのジャンプが可能となります

必要な月スケジュール表だけを印刷したい
範囲を選択してから印刷します

カレンダーを用紙に合わせて印刷したい
印刷したいセル範囲を決めて、 1ページに収まるように設定します

シートの一部だけを印刷したい
あらかじめ印刷範囲を設定しておけば、 そのセル範囲だけを印刷できます

格子状の罫線を付けて印刷したい
「ページ設定」の「シート」タブで「格子」を設定すれば、 格子状の罫線を付加して印刷できます

シートに作った暑中見舞いをハガキに印刷したい
見た目と印刷結果は異なることが多いので、 印刷プレビューしてから印刷する方法がオススメです

オートフィルタで抽出したデータを、用紙1枚で印刷したい
[次のページ数に合わせて印刷]を使えば、 指定した枚数でデータの印刷を行えます

指定したページだけを、とびとびで印刷したい
マクロを使えば、指定したページだけを連続して印刷することは可能です

どのブックからでも利用できるマクロを作りたい
「個人用マクロブック」に登録すれば、どのブックからでもそのマクロを実行できるようになります

マクロ実行の対象範囲を固定したい
セルやセル範囲は、 Rangeで指定できます

選択中のセル範囲に含まれる空セルを、 マクロ処理の対象から除外したい
空セルでないことを条件に、 マクロを実行するよう、 If文を追加します

選択中のセル範囲に対してのマクロ実行結果を、 別のセルに表示したい
Offsetを使うと、 対象のセルの位置を行列単位でずらすことができます

選択中のセル範囲に対するマクロを作りたい
For Each~Nextで、 選択中のセル範囲(Selection)に対する処理を記述します

出退の時刻を簡単に記録したい
簡単なマクロを作れば、 「出社」や「退社」をクリック(タップ)するだけで現在日時を入力できる タイムカードを用意できます

『名前』に右隣セルの『ふりがな』を登録したい
簡単なマクロを作って、ふりがな登録する方法があります

ブックを開いたときの新規シート自動挿入を、1日1枚に制限したい
新規シートの名前に日付を加え、マクロ実行時にその存在の有無を確認するようにします

ブックを開いたときに、新規シートを先頭へ挿入したい
ThisWorkbookのOpenプロシージャに該当コードを記述します

マイナス値をゼロに置換したい④
If...ThenステートメントによるVBAマクロを使えば、マイナス値をまとめてゼロに置換できます

“縮小して表全体を表示する”のマクロを、 クイックアクセスツールバーから実行したい
クイックアクセスツールバーにマクロを登録すれば、マウスからでも、キーボードからでも、簡単に実行できるようになります

“縮小して表全体を表示する”のマクロを使って、表の選択から一気に処理したい
Range.CurrentRegion プロパティを使えば、 アクティブセル領域となっている表全体をマクロで選択できます

“縮小して表全体を表示する”を、 ショートカットキーですばやく実行したい
実行手順をマクロとして記録すれば、 ショートカットキーでその一連の手順をすばやく実行できるようになります

“セキュリティの警告”が表示されるんだけど・・・
マクロを含むブックを開くときには、注意を促すべく、「セキュリティの警告」が表示されます

マクロ有効ファイルって何?
マクロを含むブックは、 マクロ有効ファイル(マクロ有効ブック)として保存しなければ、マクロが失われてしまいます

100行程度の表で、5行おきに、新しい行を挿入したい
あまり大きくない表でのパターン化された処理なら、一定の手順をマクロ記録すると便利です

オートシェイプをクリックするたびに、枠線の表示と非表示を切り替えたい
枠線の表示と非表示の切り替えマクロを、 オートシェイプに登録すれば、 オートシェイプをクリックするだけでそのマクロが実行されるようになります

オートシェイプの枠線の表示と非表示を、一つのマクロで切り替えたい
If~Then~Elseの構文を使えば、 オートシェイプの状態に応じて、表示と非表示を一つのマクロで切り替えられます

オートシェイプの枠線の表示の有無を、マクロで切り替えたい
Shape.LineのVisibleプロパティの設定を変えることで、 枠線を表示したり非表示にしたりすることができます

マクロを右クリックで実行したい
Worksheet_BeforeRightClickイベントのプロシージャにマクロを記述すると、 指定シートを右クリックしたときにそのマクロが実行されます

ブックを閉じるときに、マクロを自動的に実行したい
そのブックのWorkbook.BeforeClose イベントに、マクロを実行するコードを記述します

2つのフォルダへの保存マクロを、汎用的なものにしたい
ファイル名の部分を、 編集中のブックの名前を表すActiveWorkbook.Nameにすると、 編集中のブックならどれでもマルチ保存が可能になります

マクロ実行時に表示されるダイアログボックスを無視したい
Application.DisplayAlerts プロパティをFalseにすると、 マクロの実行中に警告やメッセージが表示されなくなります

編集中のブックを、現在のフォルダとは別のフォルダにも、すばやく保存したい
手間のかかる操作は、マクロ化すれば、簡単に処理できるようになります

マクロのコードを、見た目にわかりやすく、簡潔に記述したい
With ステートメントを使えば、作業の対象となるオブジェクトの記述が1回で済みます

B2セルに入力してあるデータを、そのシートの名前にしたい
シートの名前は、Worksheet.Name プロパティで変えることができます

リスト内の各データを、必要に応じて個別で表示したい
マクロを使えば、ダブルクリックしたデータを、専用のユーザーフォームで表示することができます

 

 

 

 

 

出前館

アウトドア&フィッシング ナチュラム