【Excel】エクセルVBAでシート移動をボタンクリックでする(別シートが開くなど)方法【マクロ】 | モアイライフ(more E life)
EXCELのYouTube始めました!

EXCEL初心者に向けたYouTubeチャンネルを開始しました(^^)/
ぜひチャンネル登録よろしくお願いします!

効率よくエクセルを学ぶ!

【Excel】エクセルVBAでシート移動をボタンクリックでする(別シートが開くなど)方法【マクロ】

Excelのスキルアップ
本サイトでは記事内に広告が含まれています

この記事では、エクセルVBAでシート移動をボタンクリックでする(別シートが開くなど)方法【マクロ】(目次シートを作って選んだ名前シートが開くVBA)の解説をしていきます。

・ActiveCell.Value、Worksheets(A).Activateを使って目次にあるセルのシートを開きます

・On Error Resume Next、Sheets.Add(after:=Sheets(1))を使ってシートの有無を確認し、存在しなければ追加して開きます

・Workbooks.Open(“C:\\abc\\a.xlsx”)を使い別ブックを開き、シートの有無を確認し、存在しなければ追加して開きます

などの関数を使ってVBAを構築していけばボタンをクリックしてシートを開けます

それでは詳しく見ていきましょう。

 

※なお、マクロを使わずにシート移動する場合は

・左下のシートタブで移動したいシートをクリックして選択する

・シート移動のショートカットキー:Ctrl+↑(PgUp)で右シートに移動(パソコンによってはFnも併せて押す)

・シート移動のショートカットキー:Ctrl+↓(PgDn)で左シートに移動(パソコンによってはFnも併せて押す)

といいです。

 

それでは詳しくみていきましょう。

 

スポンサーリンク

エクセルVBAでボタンをクリックで別のシートに移動する方法(元のシートあり)

サンプルでは、目次シートのセルA1:果物、A2:魚介、A3:肉にシート名が書かれていて、同名のシートがすでにあるとします。

開発タブ、中央付近の挿入から、フォームコントロールのボタンをクリックして、挿入しましょう。

表示のボタン上で右クリックし、マクロの登録を行っていきます。

「シートを開く」ボタンにはセル書かれたシートが開くVBAが書かれており、例えば、果物のセルを選んでボタンを押すと「果物」のシートが開きます。

下記がボタンに書かれたプログラムです。

Sub Macro1()
    A = ActiveCell.Value        ‘選択されているセルのテキストを取得
    Worksheets(A).Activate      ‘テキストに書かれたワークシートを開く
End Sub

このプログラムでは選択されたセルが空白だとエラーになるのでご注意ください。

 

 

エクセルでボタンクリックで別のシートを開く方法(元シート無)

サンプルでは、目次シートのセルA1~A3にシート名が書かれていますが、現行ではシートはありません。

「シートをブック内に作成」ボタンには選択されたセルに書かれたシートが存在しない場合は新たにシートを作り開く、存在する場合はそれを開くVBAが書かれており、例えば、果物のセルを選んでボタンを押すと「果物」のシートを作成して開きます。

下記がボタンに書かれたプログラムです。


Sub Macro2()
    Dim ws As Worksheet                     ‘ワークシートの定義
    A = ActiveCell.Value                      ‘選択されたセルのテイストの取得
    
    On Error Resume Next                    ‘ テキストに書かれたシートが存在するかの確認
    Set ws = Worksheets(A)                   ‘
    On Error GoTo 0                         ‘
    
    If ws Is Nothing Then                     ‘シートが存在しなし場合の処置
    Set ws = Sheets.Add(after:=Sheets(1))      ‘シートを追加
    ws.Name = A                             ‘シート名を変更
    End If                                    ‘ 
    Worksheets(A).Activate                    ‘ シートを開く
End Sub

 

 

エクセルでボタンクリックで別ブックの別シートを開く方法(元シート無)

サンプルでは、目次シートのセルA1~A3にシート名が書かれています

B2に書かれているのは別ブックのフルパスのファイル名です。

あらかじめ、B2に書かれたファイルは作成してあり、シートは「Sheet1」があります。

「別ブックを開いてシートを作成」ボタンに書かれたプログラムは、B3に書かれたブックを開いて、選択したセルに書かれたシートが存在しない場合は新たにシートを作り開き、存在する場合はそれを開くVBAです。

例えば、果物のセルを選んでボタンを押すとC:\test\test.xlsmに「果物」のシートを作成して開きます。

下記がプログラムになります。


Sub Macro3()
    Dim wb As Workbook                     ' ワークブックの定義
    Dim ws As Worksheet                     ' ワークシートの定義
    A = ActiveCell.Value                     ' 選択されたセルのテキストの取得
    B = Cells(2, 2)                          ' 別のブックの名前の取得
    
    Set wb = Workbooks.Open(B)               ' 別のワークブックを開く
    
    On Error Resume Next                     ' 同名シートの有無を確認
    Set ws = Worksheets(A)                    ' 
    On Error GoTo 0                          '
    
    If ws Is Nothing Then                     ' 同名のシートが無い場合の処置
    Set ws = Sheets.Add(after:=Sheets(1))      ' シートの作成
    ws.Name = A                             ' 名前の変更
    End If                                   '
    Worksheets(A).Activate                   ' シートを開く
End Sub

 

まとめ エクセルでシート移動をボタンクリックでする(別シートが開くなど)の方法

VBAを使ってシートを3つの開く方法を解説しました。

これらを使って業務を効率化しましょう。

コメント

スポンサーリンク
タイトルとURLをコピーしました