アクティブセルに入力された同一ブック内のシートに移動する

概要

動作確認環境
OS : Win7
Excel : 2010

アクティブセルに入力されたシート名が同一ブック内に存在するか確認し、存在する場合にそのシートへ移動します。移動したいシート名が入力されているセルを選択してから、マクロを実行して下さい。
尚、シートの移動に使用するセルは下記条件を満たしていることが必要です。

  • 結合されていないこと
  • 単一のセル(A1、B1など1つのみ)であること
  • 単一のシート名(Sheet1、Sheet2など1つのみ)が入力されていること

サンプルコード

下記サンプルコードをシートモジュールに貼り付けて下さい。

Sub プロシージャ sample3

Option Explicit

'シートモジュールに貼付
'セルに記入されたシートに移動
Private Sub sample3()
  Dim rng As Range
  Dim r_count As Long
  Dim c_count As Long
  Dim i As Long
  Dim tf As Boolean
  Dim str As String

  tf = False

'セルが選択されているか
  If TypeName(Selection) <> "Range" Then '・・・(1)
    MsgBox "セルを選択してから実行して下さい"
    Exit Sub
  End If

  Set rng = ActiveCell

  r_count = Selection.Rows.Count '・・・(2)
  c_count = Selection.Columns.Count '・・・(3)

'単一のセルが選択されているか
  If ((r_count = 1) And (c_count = 1)) Then
    str = rng.Value

'選択したシート名が存在するか
    For i = 1 To Sheets.Count
      If Sheets(i).Name = str Then
        tf = True
        Exit For
      End If
    Next i    

    If tf = True Then
      Worksheets(str).Activate '・・・(4)
      MsgBox "移動完了"
    Else
      MsgBox "移動失敗"
    End If

  Else
    MsgBox "単一のセルを選択して下さい"
    Exit Sub
  End If

End Sub

サンプルコード解説

Sub プロシージャ sample3

(1) If TypeName(Selection) <> “Range” Then
TypeName(Selection) で現在選択されているものの型を取得します。セルが選択されている場合は文字列 Range が戻り値として返されます。

(2) r_count = Selection.Rows.Count
Selection.Rows.Count で現在選択されているセル範囲の行数を取得します。

(3) c_count = Selection.Columns.Count
Selection.Columns.Count で現在選択されているセル範囲の列数を取得します。

(4) Worksheets(str).Activate
Worksheets(str).Activate でシート名(str)のワークシートが選択されている状態にします。

操作手順

今回は、3枚のシート(Sheet1、Sheet2、Sheet3)が保存されている sample3.xlsx を例に説明します。

  1. シート名を検索するファイルの拡張子を変更する。
  2. 作業用シートを追加する。
  3. サンプルコードを貼り付ける。
  4. サンプルコード sample3 を実行する。

手順1.拡張子の変更
※既にファイルの拡張子が .xlsm になっている場合は、手順2へ進んで下さい。

手順1(1)

(1) 左図の様に sample3.xlsx と表示されていない場合は(2)へ、表示されている場合は(7)へ進んで下さい。

手順1(2)

(2) 任意のフォルダを選択して、ダブルクリックして開いて下さい。
※どのフォルダでもOKです。

手順1(3)

(3) 整理→フォルダーと検索のオプションの順にクリックして下さい。

手順1(4)

(4) 表示タブに切り替え、登録されている拡張子は表示しないの左側にあるチェックボックスのチェックを外して下さい。

手順1(5)

(5) 適用→OKの順にクリックして下さい。

手順1(6)

(6) 左図の様に sample3.xlsx と表示されていることを確認して下さい。

手順1(7)

(7) sample3.xlsx を開き、ファイル→名前を付けて保存の順にクリックして下さい。

手順1(8)

(8) 赤線で囲んだ部分をクリックして下さい。

手順1(9)

(9) 一覧からExcel マクロ有効ブック(*.xlsm)をクリックして下さい。
※ファイルの種類が .xlsm に変更されます。

手順1(10)

(10) 保存をクリックして下さい。
※特に保存場所を指定しない場合は、オリジナルのファイルと同じ場所に保存されます。

手順1(10)※

※(10)で保存をクリックした時に左図の様な警告が出た場合は、いいえ をクリックしてファイルを探してみましょう。


手順2.作業用シートの追加

手順1(1)

(1) 手順1で拡張子を変更したファイル sample3.xlsm を開き、左図の赤線で囲んだ部分をクリックして下さい。
※Excel画面下側のワークシート名が表示されている場所の近くにあります。

手順1(1)※

※(1)の図のアイコンが見つからない方は、左図の赤線で囲まれた部分をクリックして下さい。

手順2(2)

(2) 左図の赤線で囲まれた部分にマウスのカーソルを合わせ、右クリックして下さい。

手順2(3)

(3) 左図の赤線で囲まれた部分をクリックして下さい。

手順2(4)

(4) シート名を 作業用シートに変更して下さい。

手順2(4)※

※(4)でシート名を変更した後に左図の様な警告が出た場合は、重複しない名前に変更して下さい。


手順2(5)

(5) 作業用シートのセルA2 に Sheet3 と入力し、A2 をアクティブセルにします。
※ Sheet3 へ移動する場合の説明です。入力するセルは A2 でなくても大丈夫です。

手順3.サンプルコードの貼り付け

手順3(1)

(1) 手順2で追加した 作業用シート を選択し、シート名にマウスのカーソルを合わせ、右クリックして下さい。

手順3(2)

(2) 左図の赤線で囲まれた部分をクリックして下さい。

手順3(3)

(3) 左図の赤線で囲まれた部分にサンプルコード Sub プロシージャ sample3 ( Option Explicit ~ End Sub まで )をコピーして貼り付けて下さい。
※サンプルコード1行目の Option Explicit が左図の様に既に表示されている場合は、2行目からコピーして貼り付けて下さい。


手順4.サンプルコードの実行

手順4(1)

(1) デバッグ → VBAProjectのコンパイル の順にクリックして下さい。
※特に問題が無ければ、メッセージは表示されません。

手順4(1)※

※(1) でコンパイル実行後に左図の様な警告が出た場合は、貼り付けた内容を再度確認して下さい。

手順4(2)

(2) 実行 → Sub/ユーザーフォームの実行 の順にクリックして下さい。

手順4(2)※

※(2)の実行後に左図の様なメッセージが表示された場合は、画像等が選択されています。

手順4(2)※2

※(2)の実行後に左図の様なメッセージが表示された場合は、複数のセル(結合セルを含む)が選択されています。

手順4(2)※3

※(2)の実行後に左図の様なメッセージが表示された場合は、シート名の入力に問題があります。セルに入力したシート名を再度確認して下さい。複数のシート名を入力している場合は単一のシート名に修正して下さい。

手順4(3)

(3) OK をクリックして下さい。
※シートに移動することが出来た場合に表示されるメッセージです。

手順4(4)

(4) Sheet3 へ移動します。


操作手順 (2回目以降)

上記の操作手順を例に説明します。

  1. ファイル sample3.xlsm を開く。
  2. Sub プロシージャ sample3 を表示する。
  3. Sub プロシージャ sample3 を実行する。

手順1.ファイルを開く

手順1(1)

(1) 作業用シートのセルA2 に Sheet3 と入力し、A2 をアクティブセルにします。
※ Sheet3 へ移動する場合の説明です。入力するセルは A2 でなくても大丈夫です。

手順1※

※ sample3.xlsm を開いた時に、左図の様な警告が出た場合は、コンテンツの有効化をクリックして下さい。


手順2.Sub プロシージャ sample3 の表示

手順2(1)

(1) 作業用シートにマウスのカーソルを合わせ、右クリックして下さい。

手順2(2)

(2) 左図の赤線で囲まれた部分をクリックして下さい。


手順3.Sub プロシージャ sample3 の実行

手順3(1)

(1) 左図の赤線で囲まれた部分をクリックして下さい。
※ ( Declarations ) の右側の ▼ をクリックして下さい。

手順3(2)

(2) リストから sample3 をクリックして下さい。

手順3(3)

(3) 実行 → Sub/ユーザーフォームの実行 の順にクリックして下さい。

手順3(3)※

※(3)の実行後に左図の様なメッセージが表示された場合は、画像等が選択されています。

手順3(3)※2

※(3)の実行後に左図の様なメッセージが表示された場合は、複数のセル(結合セルを含む)が選択されています。

手順3(3)※3

※(3)の実行後に左図の様なメッセージが表示された場合は、シート名の入力に問題があります。セルに入力したシート名を再度確認して下さい。複数のシート名を入力している場合は単一のシート名に修正して下さい。

手順3(4)

(4) OK をクリックして下さい。
※シートに移動することが出来た場合に表示されるメッセージです。

手順3(5)

(5) Sheet3 へ移動します。

タイトルとURLをコピーしました