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でcsvを読み込み区切り文字で区切る方法

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

VBAで「実行時エラー ‘429’:ActiveXコンポーネントはオブジェクトを生成できません」が出た時の対処記録

  <目次> (1) VBAで「実行時エラー ‘429’:ActiveXコンポーネントはオブジェクトを生成できません」が出た時の対処記録  (1-1) 発生状況・エラーメッセージ  (1-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で複数のブックの内容を集計する方法

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

VBAで処理と処理の間に一定時間を空けて実行する方法

今回はVBAで処理と処理の間に一定時間を空けて実行する方法について、備忘も兼ねて記載します。 (0)目次&概説 (1) Application.wait (2) サンプルプログラムソース (3) サン …

  • English (United States)
  • 日本語
Top