| 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
|