[はじめに]
・最近、Excelマクロを使う機会が増えたので、備忘録としてサンプルを掲載します。
指定したブック内のシートを検索する処理です。
[ソース]
|
Option Explicit
''' <summary>
''' 指定したブック検索する。
''' </summary>
''' <param name="bookName">ブック名</param>
''' <returns>対象のWorkBook。(存在しない場合はNothing)</returns>
''' <remarks></remarks>
Public Function FindBook( _
ByVal bookName As String) As Workbook
Dim bk As Workbook
For Each bk In Workbooks
If bk.name = bookName Then
Set FindBook = Workbooks(bk.name)
Exit Function
End If
Next
End Function
''' <summary>
''' 指定したブック内のシートを検索する。
''' </summary>
''' <param name="sheetName">シート名</param>
''' <param name="bookName">ブック名(※省略時はThisWorkbook.Name)</param>
''' <returns>対象のWorkSheet。(存在しない場合はNothing)</returns>
''' <remarks></remarks>
Public Function FindSheet( _
ByVal sheetName As String, _
Optional ByVal bookName As String = "") As Worksheet
Dim bk As Workbook
Dim sht As Worksheet
If bookName = "" Then
'ブック名を省略した場合は、
'自分自身のブックを対象とする。
Set bk = ThisWorkbook
Else
Set bk = FindBook(bookName)
If bk Is Nothing Then
'指定したブック名が存在しない場合は、Nothingを返す。
Set FindSheet = Nothing
Exit Function
End If
End If
For Each sht In bk.Sheets
If sht.name = sheetName Then
Set FindSheet = bk.Worksheets(sht.name)
Exit Function
End If
Next
'シートが存在しない場合、Nothingを返す。
Set FindSheet = Nothing
End Function
| |
[VBA]指定したブック内のシートを検索 |
0 件のコメント:
コメントを投稿