No | 項目 | 内容 | 例文 | 記事 |
1 | 追加 | ワークシートの追加 | Worksheets.Add | |
2 | 追加 | 名前を付けてワークシートの追加 | Sheets.Add.Name = "検索結果" | |
3 | 追加 | ワークシートをSheet2の前に追加 | Worksheets.Add Before:=Worksheets("Sheet2") | |
4 | 追加 | ワークシートを一番前に追加 | Worksheets.Add Before:=Worksheets(1) | |
5 | 追加 | ワークシートを末尾に追加 | Worksheets.Add After:=Sheets(Sheets.Count) | |
6 | 追加 | ワークシートの枚数を指定し追加 | Worksheets.Add Count:=3 | 本例は3枚 |
7 | Activate | シート名を指定しアクティブにする | Worksheets("Sheet1").Activate | |
8 | Activate | シート名を指定しアクティブにする | Sheets("Sheet1").Activate | 【注1】 |
9 | Activate | インデックス番号を指定しアクティブに | Worksheets(1).Activate | |
10 | 選択 | ワークシートを選択 | Worksheets("Sheet3").Select | |
11 | 選択 | アクティブシートの1つ前のシートを選択 | ActiveSheet.Previous.Select | |
12 | 選択 | アクティブシートの1つ右のシートを選択 | ActiveSheet.Next.Select | |
13 | 名前 | シート名を取得する | MsgBox ActiveSheet.Name | |
14 | 名前 | シート名を取得する(インデックス番号) | MsgBox ActiveSheet.Index | |
15 | 名前 | シート"Sheet1"の名前を"集計"にする | Worksheets("Sheet1").Name = "集計" | |
16 | 名前 | ブック内の全シート名を取得する(For) | For I = 1 To Worksheets.Count ・・・・・・ | [シート1]マクロ |
17 | 名前 | 全シート名を取得する(For Each) | For Each s_name In Worksheets ・・・・・・ | [シート2]マクロ |
18 | 再計算 | シートの再計算の自動実行中止に設定 | ActiveSheet.EnableCalculation = False | |
19 | 再計算 | ワークシートの再計算 | Worksheets("Sheet1").Calculate | |
20 | 保護 | シートの保護(パスワード付き) | ActiveSheet.Protect Password:="abc" | |
21 | 保護 | シートの保護(マクロでの書込みは可能) | ActiveSheet.Protect UserInterfaceOnly:=True, Password:="abc" | |
22 | 保護 | シートの保護の解除(パスワード付き) | ActiveSheet.Unprotect Password:="abc" | |
23 | 非表示 | シートを隠す | Worksheets("Sheet4").Visible = False | |
24 | 非表示 | 隠したシートをもどす | Worksheets("Sheet4").Visible = True | |
25 | 削除 | 現在アクティブなシートを削除する | ActiveSheet.Delete | |
26 | 削除 | 未使用ワークシートを削除する | For Each 各シート In Worksheets ・・・・ | [シート3]マクロ |
27 | 削除 | 指定のシートがあるば削除する | If sheet_name.Name = "Sheet99" Then ・・・・・ | [シート4]マクロ |
28 | 移動 | Sheet1"を"Sheet2"の後ろに移動する | Worksheets("Sheet1").Move After:=Worksheets("Sheet2") | |
29 | 移動 | 現在アクティブなシートを"Sheet2"の前に移動する | ActiveSheet.Move Before:=Worksheets("Sheet2") | |
30 | コピー | Sheet1"を"Sheet2"の後ろにコピーする | Worksheets("Sheet1").Copy After:=Worksheets("Sheet2") | |
31 | コピー | Sheet2"を"Sheet1"の前にコピーする | Worksheets("Sheet2").Copy Before:=Worksheets("Sheet1") | |
32 | 取得 | アクティブブックのワークシート数を取得する | msgbox ActiveWorkbook.Worksheets.Count |
Sub シート1() Dim i As Integer, mydat As String For i = 1 To Worksheets.Count mydat = mydat & " (" & i & ")" & Worksheets(i).Name Next MsgBox mydat End Sub |
Sub シート2() Dim i As Integer, mydat As String, s_name As Object For Each s_name In Worksheets i = i + 1 mydat = mydat & " (" & i & ")" & s_name.Name Next MsgBox mydat End Sub |
Sub シート3() Dim s_name As Object For Each s_name In Worksheets If s_name.UsedRange.Address(0, 0) = "A1" And s_name.Range("A1").Value = "" Then If Worksheets.Count <> 1 Then Application.DisplayAlerts = False s_name.Delete Application.DisplayAlerts = True End If End If Next End Sub |
※全シート削除はエラーになるので最後の1枚は残す |
Sub シート4() For Each sheet_name In Worksheets If sheet_name.Name = "Sheet99" Then Application.DisplayAlerts = False Worksheets("Sheet99").Delete Application.DisplayAlerts = True Exit For End If Next Sheets.Add.Name = "Sheet99" End Sub |
Sub 非表示1() ActiveWindow.SelectedSheets.Visible = False End Sub ----------------------------------------------------------- Sub 非表示2() Worksheets("Sheet3").Visible = False End Sub ---------------------------------------------------------- Sub 非表示3() Worksheets("Sheet3").Visible = xlVeryHidden End Sub -------------------------------------------------------- Sub 非表示4() Worksheets("Sheet3").Visible = True End Sub |
Sub 参考並べ替え() Dim dat() As String, datmAs As String ReDim dat(Worksheets.Count) For i = 1 To Worksheets.Count dat(i - 1) = Worksheets(i).Name Next For i = 0 To Worksheets.Count - 1 For j = Worksheets.Count - 1 To i Step -1 If dat(i) > dat(j) Then datm = dat(i) dat(i) = dat(j) dat(j) = datm End If Next j Next i Worksheets(dat(0)).Move before:=Worksheets(1) For i = 2 To Worksheets.Count Worksheets(dat(i - 1)).Move after:=Worksheets(i - 1) Next End Sub |
Sub 最終へ() 追加してシートを最終に移動 Sheets.Add.Name = "新シート" Sheets("新シート").Move After:=Sheets(Worksheets.Count) End Sub ---------------------------------------------------------------------- Sub 最初へ() 追加してシートを最終に移動 Sheets.Add.Name = "新シート" Sheets("新シート").Move Before:=Sheets(1) End Sub |
Sub 全シート処理() For Each s_name In Worksheets namae = s_name.Name If namae <> "新シート" Then Sheets(namae).Select Range("A1").Value = "ABC" 'ここに実行するマクロを記入 End If Next End Sub |