ワーク シートの操作 3

VBAトップへ
   3 ワークシートの操作
ワークシートの追加
ワークシートの名前の変更
ワークシートの移動
ワークシートのコピー
ワークシートの削除
ワークシートのイベントプロシージャ

ワークシートの追加

  1. ワークシートの追加

    ワークシートの追加にはAddメソッドを使用します。追加するシートの場所、数を引数で指定することができます。

    メソッド引数定数内容
    AddBeforeシート名シートの前に追加
    Afterシート名シートの後ろに追加
    Countシート数シート数を追加
    Typeタイプ 

    
    'ワークシートの追加
    Sub AddWorksheet()
        Worksheets.Add
    End Sub
    
    Sub AddWorksheet()
        Worksheets.Add Before:=Worksheets("Sheet2")
    End Sub
    
    Sub AddWorksheet()
        Worksheets.Add Atfer:=Worksheets("Sheet2")
    End Sub
    
    Sub AddWorksheet()
        Worksheets.Add Count:=3
    End Sub
    
    Sub AddWorksheet()
        Worksheets.Add After:=Worksheets("Sheet2"),Count:=3
    End Sub
    

先頭へ戻る

ワークシートの名前の変更

2. ワークシートの名前の変更

ワークシートの名前の変更にはNameメソッドを使用します。


ActiveSheet.Name="シート名"

'ワークシートの名前の変更
Sub ChangeSheetName()
    ActiveSheet.Name="TEST"
End Sub

'シート"Sheet1"の名前を"TEST"にする
Sub ChangeSheetName()
    Worksheets("Sheet1").Name="TEST"
End Sub

先頭へ戻る

   


ワークシートの移動

3. ワークシートの移動

ワークシートの移動にはMoveメソッドを使用し移動先を引数で指定します。

メソッド引数定数内容
Move
Beforeシート名シートの前に移動
Afterシート名シートの後ろに移動


'現在アクティブなシートを"Sheet2"の後ろに移動する
Sub MoveWorksheet()
    ActiveSheet.Move After:=Worksheets("Sheet2")
End Sub

'"Sheet1"を"Sheet2"の後ろに移動する
Sub MoveWorksheet()
     Worksheets("Sheet1").Move After:=Worksheets("Sheet2")
End Sub

'現在アクティブなシートを"Sheet2"の前に移動する
Sub MoveWorksheet()
    ActiveSheet.Move Before:=Worksheets("Sheet2")
End Sub

'"Sheet2"を"Sheet1"の前に移動する
Sub MoveWorksheet()
     Worksheets("Sheet2").Move Before:=Worksheets("Sheet1")
End Sub

先頭へ戻る

   

   

ワークシートのコピー

4. ワークシートのコピー

ワークシートのコピーにはCopyメソッドを使用しCopy先を引数で指定します。

メソッド引数定数内容
Copy
Beforeシート名シートの前にコピー
Afterシート名シートの後ろにコピー


'現在アクティブなシートを"Sheet2"の後ろにコピーする
Sub CopyWorksheet()
    ActiveSheet.Copy After:=Worksheets("Sheet2")
End Sub

'"Sheet1"を"Sheet2"の後ろにコピーする
Sub CopyWorksheet()
     Worksheets("Sheet1").Copy After:=Worksheets("Sheet2")
End Sub

'現在アクティブなシートを"Sheet2"の前にコピーする
Sub CopyWorksheet()
    ActiveSheet.Copy Before:=Worksheets("Sheet2")
End Sub

'"Sheet2"を"Sheet1"の前にコピーする
Sub CopyWorksheet()
     Worksheets("Sheet2").Copy Before:=Worksheets("Sheet1")
End Sub

先頭へ戻る

   

ワークシートの削除

5. ワークシートの削除

ワークシートの削除にはDeleteメソッドを使用します。


ActiveSheet.Delete

しかし削除時に以下のようなアラートメッセージが表示されます。

シート削除時のアラート

これを回避する為にApplicationオブジェクトのDisplayAlertsプロパティにFalseを設定し削除後Trueを設定します。


'現在アクティブなシートを削除する
Sub DeleteWorksheet()
    Application.DisplayAlerts = False
    ActiveSheet.Delete
    Application.DisplayAlerts = True
End Sub

'"Sheet1"を削除する
Sub DeleteWorksheet()
     Application.DisplayAlerts = False
     Worksheets("Sheet1").Delete
     Application.DisplayAlerts = True
End Sub

先頭へ戻る

   

ワークシートのイベントプロシージャ

6. ワークシートのイベントプロシージャ

Worksheetのイベントプロシージャとは、"マウスでセルを選択した"、"シートを選択した"といった具合に シートに対して操作(イベント)を行った際に実行されるプロシージャです。

以下はイベントプロシージャの使い方です。

  1. まず、プロジェクトから@シートを選択(図ではSheet1を選択)→A表示→Bコードをクリックします。
  2. Worksheetイベント

  3. 左のドロップダウンリストより、Worksheetを選択します。
  4. Worksheetイベント

  5. 以下のコードが自動的に記述されます。
  6. Worksheetイベント

  7. 右のドロップダウンリストより、イベントプロシージャを選択します(図ではBeforeDoubleClickを選択)。
  8. Worksheetイベント

  9. イベントプロシージャを選択すると自動的にコードが記入されるので、コードを記入します(図ではメッセージボックスを表示させるコードを記述)。
  10. Worksheetイベント

  11. Sheet1のセルを選択し、ダブルクリックをするととメッセージボックスが表示されます。
  12. Worksheetイベント

Worksheetのイベントプロシージャには以下のものがあります。

イベント内容
Worksheet_Activateワークシートがアクティブになった時に発生
Worksheet_Changeワークシートの内容が変更となった時に発生
Worksheet_BeforeRightClickセルを右クリックする前に発生
Worksheet_Calculateワークシートで計算処理後に発生
Worksheet_BeforeDoubleClickセルをダブルクリックする前に発生
Worksheet_SelectionChangeセルを選択したときに発生
Worksheet_Deactivateワークシートがアクティブでなくなった時に発生

   先頭へ戻る   

中級・特別編トップへ