1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【課題】No.7 For Each文を使用して複数のシートを操作するマクロの作成【Excel VBA】

Posted at

はじめに

この課題は全10問中7問目の課題です。
着任時に取り組むことができるExcel VBA初学者向けの課題を作成しました。
今回の課題では、For Each文を使用して複数のシートに対して一括操作を行うマクロを作成していただきます。For Each文の基本を学び、ブック内のすべてのシートを対象に操作を行う方法を習得していただければと思います。

目次

目的

For Each文の基本を学び、複数のシートに対して一括操作を行う方法を習得することを目的としています。この課題を通じて、ブック内のすべてのシートに対して同じ操作を実行する方法を実践的に学びます。

前提

この記事の内容を理解するためには、以下の参考記事を先に読むことをおすすめします。
VBAの基礎を理解して課題に取り組んでください。

課題内容

ブック内のすべてのシートを対象に、それぞれのシートのA1セルに「SheetName: ○○」という形式でシート名を入力するマクロを作成してください。

実装手順

1. 標準モジュールを追加する

標準モジュールは、複数のシートやブック全体で使用できるマクロを格納するための場所です。VBAエディタで新しい標準モジュールを追加します。

2. マクロのコードを記述する

  1. ExcelのVBAエディタを開いてください (Alt + F11)
  2. 「挿入」→「標準モジュール」を選択し、以下のコードを入力します
    ※課題内容に取り組み、プログラムを開発した後に確認してください
Sub InsertSheetNames()

    Dim ws As Worksheet
    
    ' すべてのシートに対して処理を実行
    For Each ws In ThisWorkbook.Worksheets
    
        ws.Range("A1").Value = "SheetName: " & ws.Name
        
    Next ws
    
End Sub

このコードは、ブック内のすべてのシートを対象に、それぞれのシートのA1セルに「SheetName: ○○」という形式でシート名を入力するマクロです。コードを入力した後、F5キーを押すか、VBAエディタの「実行」ボタンをクリックしてマクロを実行します。

非表示のシートがある場合、上記のコードはエラーになります。シートが非表示の場合でもエラーが発生しないように修正してください。
以下のコードは対応策の一例です。

Sub InsertSheetNames()

    Dim ws As Worksheet
    
    ' すべてのシートに対して処理を実行
    For Each ws In ThisWorkbook.Worksheets
    
        ' シートが非表示でもエラーが発生しないようにする
        On Error Resume Next
        ws.Visible = xlSheetVisible
        ws.Range("A1").Value = "SheetName: " & ws.Name
        On Error GoTo 0
        
    Next ws
    
End Sub

このコードでは、非表示のシートに対してもエラーが発生しないように処理を行っています。必要とする機能以外の要件は必ず整理するようにしましょう。

まとめ

今回の課題では、For Each文を使用して複数のシートに対して操作を行うマクロを実装しました。これにより、ブック内のすべてのシートに対して一括操作を行う方法を学ぶことができます。今後は、この基本を応用して、さらに複雑なシート操作に挑戦してみてください。

参考記事

  1. For Each...Next ステートメントを使用する
  2. コレクション処理(For Each)
  3. 【VBA入門】危険!For Each~Nextステートメントによる全シート操作に潜むリスクを解説
  4. 【VBA入門】エラーを処理する方法(On Error、Resume、GoTo)
  5. 非機能要件とは?
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?