Rainbow Engine

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

VBA

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

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

<目次>

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

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

(1-1) 構文

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

Dim Fso As FileSystemObject
Set Fso = New FileSystemObject
Dim fl As Folder
Dim f As File

'### フォルダの中のファイルをループ
For Each f In Fso.GetFolder(InputPath).Files
 [ブックに対する処理]
Next

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

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

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

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

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

Sheet.Name = "XXXXXXXX"

目次にもどる

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

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

Sub ModifySheetName()
  '### ファイルシステムを扱うためのオブジェクトや変数を定義
  Dim Fso As FileSystemObject
  Set Fso = New FileSystemObject
  Dim fl As Folder
  Dim f As File
  Dim InputPath As String: InputPath = ThisWorkbook.Worksheets("F_RenameSheet").Cells(3, 3).Value
  
  '### フォルダの中のファイルをループ
  For Each f In Fso.GetFolder(InputPath).Files
    '### ワークブック(ファイル)を開く
    Dim wb As Workbook
    Set wb = Workbooks.Open(f.Path)
    '### ワークブックの中のシートをループ
    For Each Sheet In wb.Sheets
      '### 変更前の情報
      Debug.Print "処理ブック:" & f.Name & " 【変更前】シート名: " & Sheet.Name
      '### シート名の変更
      Sheet.Name = "XXXXXXXX"
      '### 変更後の情報
      Debug.Print "処理ブック:" & f.Name & " 【変更後】シート名: " & Sheet.Name
    Next
    '### ブックを保存して閉じる
    '###  ⇒通常はポップアップが出てしまい処理中断するため、保存前に一時的にDisplayAlerts属性をFalseに変更
    Application.DisplayAlerts = False
    wb.Close SaveChanges:=True, Filename:=f.Path
    Application.DisplayAlerts = True
  Next
  '### 任意の完了メッセージを出力
  MsgBox "aaaaaaaaaaa"
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で「実行時エラー ‘429’:ActiveXコンポーネントはオブジェクトを生成できません」が出た時の対処記録

  <目次> (1) VBAで「実行時エラー ‘429’:ActiveXコンポーネントはオブジェクトを生成できません」が出た時の対処記録  (1-1) 発生状況・エラーメッセージ  (1-2 …

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

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

VBA・VB(VB.NET)・VBSの違いやそれぞれの特徴について

  <目次> (1) VBA・VB(VB.NET)・VBSの違いやそれぞれの特徴について  (1-1) VBA  (1-2) VB.NET  (1-3) VBS  (1-4) 三者の比較表 …

VBAで画像を分類に応じて適切なフォルダに仕分けるプログラム

(0)目次&概説 (1) マクロ概要 (2) 使用方法 (3) アルゴリズム概要 (4) プログラム (1) マクロ概要 本マクロは画像ファイルを適切なフォルダに仕分けるためのマクロです。前提として、 …

  • English (United States)
  • 日本語
Top