今回は、シート名の取得 及び シート名の変更の方法について解説します。
シート名の変更における注意点や、シート名の取得についてはブック内のすべてのシートの名前を取得する方法など、コピペで使える実践的なサンプルコードを用いて解説しています。
ぜひ最後までお付き合いください!
- シート名を取得する方法が分かります。
- シート名を変更する方法が分かります。
- シート名の変更におけるエラーの対処法について解説しています。
- コピペで使える実践的なサンプルコードを掲載しています。
基本情報
Nameプロパティ
シート名の取得 及び 変更を実施する場合は、WorksheetオブジェクトのNameプロパティを使用します。
‘ シート名を変更する
Workbookオブジェクト.Name = “変更後シート名”
‘ シート名を取得する
Dim sheetName As String
sheetName = Workbookオブジェクト.Name
設定値
シート名を変更することが出来ます。
Nameプロパティに変更したいシート名を代入します。
変更後のシート名がブック内に既に存在する場合はエラーとなります。
ブック内に同名のシートが存在しないか、存在チェックを事前に行うことをオススメします。
シートの存在チェックについては、以下の記事を参考にしてください!
戻り値
Worksheetオブジェクトに設定されている、シート名を返却します。
サンプルコード
シート名を変更する
以下のサンプルコードでは、アクティブシートのシート名を当日の日付(yyyyMMdd)に変更しています。
前述の通り、シートの存在チェックを事前に行うとより安全に使用できます。
Public Sub changeSheetName()
Dim dateStr As String
' 日付(yyyyMMdd)を取得する
dateStr = Format(Date, "yyyyMMdd")
' アクティブシートのシート名を 当日日付(yyyyMMdd) に変更する
ActiveSheet.Name = dateStr
End Sub
シート名を取得する
以下のサンプルコードでは、アクティブシートのシート名を取得し、その後メッセージボックスに出力します。
Public Sub getSheetName()
Dim sheetName As String
' アクティブシートのシート名取得
sheetName = ActiveSheet.Name
' メッセージボックスにシート名を出力
MsgBox sheetName, vbInformation
End Sub
ブック内のシート名を取得し配列に格納する
以下のサンプルコードでは、アクティブブック内にあるすべてのシート名をString型の配列に格納しています。
Public Sub main()
Dim wsNameArray() As String
' アクティブブックのシート名を取得する
wsNameArray = getBookInSheetName(ActiveWorkbook)
End Sub
Private Function getBookInSheetName(ByVal wbObj As Workbook) As String()
Dim wsNameArray() As String
Dim sheetCount As Integer
Dim i As Integer
' ブック内のシート数を取得
sheetCount = wbObj.Sheets.Count
' 配列のサイズを設定
ReDim wsNameArray(1 To sheetCount)
For i = LBound(wsNameArray) To UBound(wsNameArray)
' シート名を配列に格納
wsNameArray(i) = wbObj.Worksheets(i).Name
Next i
' 配列を返却
getBookInSheetName = wsNameArray
End Function
最後に
今回は、シート名の取得とシート名の変更について解説しました。
シート名の変更時には、存在チェックも忘れずに行うようにしましょう!
本記事が、皆さんのお力になれば幸いです!
コメント