Loading [MathJax]/extensions/tex2jax.js

Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

VBA

VBAでシート名をブックを手で開かずに取得してリネームする方法

投稿日:2020年11月17日 更新日:

<目次>

(1) VBAでシート名をブックを手で開かずに取得してリネームする方法
 (1-1) 構文
 (1-2) サンプルプログラム
 (1-3) 操作動画紹介・VBAダウンロード

(1) VBAでシート名をブックを手で開かずに取得してリネームする方法

(1-1) 構文

①ブックのループ
まずはフォルダの中にあるブック(.xlsx)を順番にループさせます。

  1. Dim Fso As FileSystemObject
  2. Set Fso = New FileSystemObject
  3. Dim fl As Folder
  4. Dim f As File
  5.  
  6. '### フォルダの中のファイルをループ
  7. For Each f In Fso.GetFolder(InputPath).Files
  8. [ブックに対する処理]
  9. Next

②ワークブックを開く
次に各ブックに対して、ワークブックを開きます

  1. Dim wb As Workbook
  2. Set wb = Workbooks.Open(f.Path)

③シートのループ
次に開いたワークブックのシートをループします(ブック内に複数シートある場合)。

  1. For Each Sheet In wb.Sheets
  2. [シートに対する処理]
  3. Next

④シート名の変更
最後にSheetsプロパティのシートのName属性を上書きする事で、シート名を変更します。もしブック内に複数シートがある場合は、ここを動的に変えてやる必要があります。

  1. Sheet.Name = "XXXXXXXX"

目次にもどる

(1-2) サンプルプログラム

上記のステップを一連のプログラムにしたサンプルを以下にご紹介します。
(サンプルプログラム)

  1. Sub ModifySheetName()
  2. '### ファイルシステムを扱うためのオブジェクトや変数を定義
  3. Dim Fso As FileSystemObject
  4. Set Fso = New FileSystemObject
  5. Dim fl As Folder
  6. Dim f As File
  7. Dim InputPath As String: InputPath = ThisWorkbook.Worksheets("F_RenameSheet").Cells(3, 3).Value
  8. '### フォルダの中のファイルをループ
  9. For Each f In Fso.GetFolder(InputPath).Files
  10. '### ワークブック(ファイル)を開く
  11. Dim wb As Workbook
  12. Set wb = Workbooks.Open(f.Path)
  13. '### ワークブックの中のシートをループ
  14. For Each Sheet In wb.Sheets
  15. '### 変更前の情報
  16. Debug.Print "処理ブック:" & f.Name & " 【変更前】シート名: " & Sheet.Name
  17. '### シート名の変更
  18. Sheet.Name = "XXXXXXXX"
  19. '### 変更後の情報
  20. Debug.Print "処理ブック:" & f.Name & " 【変更後】シート名: " & Sheet.Name
  21. Next
  22. '### ブックを保存して閉じる
  23. '###  ⇒通常はポップアップが出てしまい処理中断するため、保存前に一時的にDisplayAlerts属性をFalseに変更
  24. Application.DisplayAlerts = False
  25. wb.Close SaveChanges:=True, Filename:=f.Path
  26. Application.DisplayAlerts = True
  27. Next
  28. '### 任意の完了メッセージを出力
  29. MsgBox "aaaaaaaaaaa"
  30. End Sub

 

目次にもどる

(1-3) 操作動画紹介・VBAダウンロード

最後に上記のVBAを実行した操作動画と、VBAのダウンロードリンクを掲載します。
(操作動画)
最初は4つのブックのシート名はそれぞれ「aaa」「bbb」「ccc」「ddd」でしたが、VBAを実行して全て「XXXXXX」にリネームされています。

(ダウンロードリンク)
RP-IT0173_VBA_シート名_取得_開かずに

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-VBA

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

VBAでフォルダを再帰的に検索する方法について

  <目次> (1) VBAでフォルダを再帰的に検索する方法について  (1-1) 構文  (1-2) サンプルプログラム (1) VBAでフォルダを再帰的に検索する方法について VBAでフ …

VBAによるマトリクスの行列を反転させて転記するプログラム

(0)目次&概説 (1) マクロ概要 (2) 使用方法 (3) アルゴリズム概要 (4) プログラム (1) マクロ概要 マトリクス形式で表現されたデータの行と列を入れ替えるプログラムです。 (※Ex …

VBAで複数のブックの内容を集計する方法

<目次> (1) VBAで複数のブックの内容を集計する方法  (1-1) 構文  (1-2) サンプルプログラム (1) VBAで複数のブックの内容を集計する方法 VBAで複数のブックに記載された内容 …

VBAによる郵便番号の正規表現マッチ確認関数&置換関数の作成

  (0)目次&概説 (1) 正規表現とは (2) 正規表現はどのような場面で利用される? (3) VBAによる正規表現の簡易チェックツール  (3-1) 郵便番号を抽出したい  (3-2) …

VBAでcsvを読み込み区切り文字で区切る方法

  <目次> (1) VBAでcsvを読み込み区切り文字で区切る方法  (1-1) 構文  (1-2) サンプルプログラム  (1-3) サンプルプログラムの実行結果 (1) VBAでcsv …

  • English (United States)
  • 日本語
S