Excel Microsoft VBA

シートの検索・抽出方法を覚えよう!【VBA入門講座#18】

サブロー
こんにちは。サブローです。

『Microsoft Excel』(以下Excel、エクセル)の中の機能としてある[VBA] について基本的な説明をしていきます。

仕事の改善や個人的な知識向上に役立ててください(^o^)

第18回目の今回は

VBAでのシートの検索方法、シート名の抽出方法

について解説していきますので、よろしくお願いします。

前回までのVBAに関するINDEXは下記を参照してくださいね。

↓サブログ内部リンク(VBA用INDEX)↓

Excel VBA講座-目次(INDEX)

サブローExcel VBAに関する説明を今後増やして行く予定なので、各リンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 目次(INDEX) 講座No内容 ...

続きを見る






「シートの検索・抽出」について

ワークシート内ではシート数はかなりの枚増やすことができます。⇨使用可能なメモリに依存

(実際にはそんなに多くのシートはないと思いますが)仮に1000シートあるとして、そこからあるシートを探そうとしたとき、手作業で確認するのは手間もかかりますし、探し漏れもでてくる可能性があります。またそもそも存在していない可能性もあります。もしVBAを使用して検索したシートが存在しない場合、エラー処理を実施していない場合はエラーが発生してしまいます。

 

「シートの検索」の例

例) 1月~12月の12個のシートから5月のシートを検索して見つけてから、そのシートをアクティブにする

Sub シート検索()

'String型の変数を宣言します。
Dim 検索シート As String

'Worksheet型の変数を宣言します。
Dim シート As Worksheet

'"入力フォーム"シートをアクティブにします。
Sheets("入力フォーム").Select

'"検索シート"の変数にB2セルの文字を代入します。
検索シート = Range("B2").Value

'検索シートにシートの名前を1つずつ格納し、対象になるシートがなくなるまで、下記の処理を繰り返します。
For Each シート In Worksheets

’もし検索シートが見つかったら
If シート.Name = 検索シート Then

'検索シートで見つかったシートを選択します。
Worksheets(検索シート).Select

’(検索シートが見つかった場合)マクロ処理を抜けます。
Exit Sub

’If 処理を抜けます。
End If

'次のシート検索にうつる
Next

’変数(検索シート)が見つからなかった場合、下記のメッセージを表示させます。
MsgBox 検索シート & "シートは存在しません。"

’マクロを終了します。
End Sub

◎シート検索を実行(B2セルの5月のシート検索)すると・・・・・

◎検索シート(5月)がアクティブシートになります。

「シート名の抽出」方法

ブックにある全てのシート名を抽出する方法です。For Each...Nextステートメントを使って、ワークブック内の全てのワークシート名をセルに書き出していきます。

Sub シート名抽出()

'Worksheet型の変数を宣言します。
Dim mySheet As Worksheet

'Long型の変数を宣言します。
Dim i As Long

'iを2と設定します。行の設定(A1セルには"シート名"と入力されているので、2列目から格納していく)
i = 2

'”検索シート”にシートの名前を1つずつ格納し、シートがなくなるまで、下記の処理を繰り返します。
For Each mySheet In Worksheets

’"シート抽出"シートのA2セルから下方向のセルにシート名を順次格納していきます。
Sheets("シート抽出").Cells(i, 1).Value = mySheet.Name

'iに1を加算することにより、次に見つかったシート名を1行下(A3⇨A4⇨A5⇨・・・・に入力するようにします。
i = i + 1

’繰り返します。
Next

’シート名の抽出が終わったら、下記のメッセージを表示させます。
MsgBox ”シート名の抽出が完了しました。"

’マクロを終了します。
End Sub

◎シート抽出のマクロを実行すると・・・・・

◎全てのシート名が抽出されます。

モグゾー
それでは、今回はここまで。最後までお読みいただきありがとうございました!
2020年5月13日公開 | 2020年10月3日更新

~INDEX一覧~

エクセル関数の勉強 1

サブローエクセル/Excel関数の一覧にしています。本ブログ内で記事にしているものは、講座の列にリンク付けを随時行います(^o^) ※使用頻度のランクに関しては、個人的な主観でランク付けをしています。 ...

2

サブロー危険物取扱者試験 乙4種対策講座の目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 【目次/INDEX】 講座ID分類内容リンク 1共通#1『危険物取扱者試験』の ...

3

サブローQC(品質管理)検定に関する説明が増やして行く予定なのでリンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 モグゾー対象級を記載していますが、あく ...

4

サブローExcel VBAに関する説明を今後増やして行く予定なので、各リンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 目次(INDEX) 講座No内容 ...

-Excel, Microsoft, VBA
-, ,

Copyright© サブログ , 2020 All Rights Reserved Powered by AFFINGER5.