【Excel VBAでブック操作を行う方法】

ExcelVBA

ブックの操作とは

VBAを使ってExcelのブックを操作することで、ブック内のシートやセルにアクセスしたり、新しいブックを作成したり、既存のブックを開いたりすることができます。以下では、代表的なブックの操作方法を紹介します。

新しいブックを作成する

新しいブックを作成するには、以下のコードを使用します。

Dim newBook As Workbook'ワークブック型の変数を宣言
Set newBook = Workbooks.Add'

上記のコードで新しいブックを作成し、変数「newBook」に格納しています。新しいブックには、既定で1つのシートが含まれています。

ブックを開く

既存のブックを開くには、以下のコードを使用します。

Dim myBook As Workbook'ワークブック型の変数を宣言
Set myBook = Workbooks.Open("C:\path\to\file.xlsx")'ワークブックを開く

上記のコードで、パス「C:\path\to\file.xlsx」にあるExcelブックを開いて、変数「myBook」に格納しています。

ブックを閉じる

開いているブックを閉じるには、以下のコードを使用します。

ActiveWorkbook.Close'アクティブワークブックを閉じる

上記のコードで、アクティブなブックを閉じます。変更が保存されていない場合は、保存するかどうかを確認するダイアログボックスが表示されます。

使用例

では、実際にブック間のデータ貼り付けを実装してみましょう。
以下は、貼り付け元のブックを開いてセルの転記を行うまでの操作を行う例です。

Sub Sample1()
  '貼り付け先のワークブックを格納するwbと貼り付け元のワークブックを格納するtargetを宣言
    Dim wb As Workbook
    Dim target As Workbook
    
    '貼り付け先のワークブックを格納
    Set wb = ThisWorkbook
    '貼り付け元のワークブックを格納(デスクトップの転記フォルダを作成し貼り付け元.xlsxを作成)
    Set target = Workbooks.Open(Environ("UserProfile") & "\OneDrive\デスクトップ\転記フォルダ\貼り付け元.xlsx")
    
    '貼り付け先のワークブックに貼り付け
    wb.Worksheets(1).Cells(1, 1) = target.Worksheets(1).Cells(1, 1)
    wb.Worksheets(1).Cells(1, 2) = target.Worksheets(2).Cells(1, 1)
    
    'メッセージボックスで貼り付けた文字列を出力する。
    MsgBox "貼り付け先ブックのシート1(1,1) = " & wb.Worksheets(1).Cells(1, 1) & vbLf _
             & "貼り付け先ブックのシート1(1,2) = " & wb.Worksheets(1).Cells(1, 2)
    
    '貼り付け元のブックを閉じる
    target.Close
End Sub

上記の例では、可読性を高める目的で、貼り付け先と貼り付け元のワークブックの変数を作成しています。それぞれワークブックのセルを指定してデータの貼り付けを行い、メッセージボックスで貼り付けた文字列の出力を行っています。なお、貼り付け元のワークブックは操作不要のため閉じています。

処理イメージについては、以下の図のとおりになります。

ブック内のシートを操作する

ブック内のシートを操作するには、以下のようなコードを使用します。

Dim mySheet As Worksheet'ワークシート変数のmySheetを宣言
'ワークシート変数のmySheetにアクティブなワークブックの"Sheet1"のシートを格納
Set mySheet = ActiveWorkbook.Sheets("Sheet1")

上記のコードで、アクティブなブックの「Sheet1」を変数「mySheet」に格納しています。

シートにアクセスしたら、シートの操作が可能になります。たとえば、シート内のセルに値を設定するには、以下のようなコードを使用します。

mySheet.Range("A1").Value = "Hello, world!"'ワークシートmySheetの"A1"セルに文字列を入力

上記のコードで、シート「mySheet」のA1セルに値「Hello, world!」を設定しています。

練習問題

以下の練習問題を解いて、ブックの操作に慣れてください。

  1. 新しいブックを作成し、シート「Sheet1」に値「1」を設定してください。
  2. 既存のブック「sample.xlsx」を開き、シート「Sheet2」に値「2」を設定してください。
  3. 開いているブックのシート「Sheet3」を変数「mySheet」に格納してください。
  4. 変数「mySheet」のA1セルに値「3」を設定してください。
  5. 開いているブックを保存して、閉じてください。