朝会発表テーマ

Excelで他のExcelを操作する方法について

1.Excelで他のBookのExcelデータを使用する

Excelで他のBookの値を使用するために、Workbookオブジェクトを作成し、作成したオブジェクト内のシート、セルにアクセスすることで値の取得、設定が可能。

例:c:\test.xlsxの1シートめに存在するA1セルの値を取得する

Dim book As Workbook
Dim str As String
Set book = Workbooks.Open("c:\test.xlsx")
str = book.Sheets(1).Range("A1").Value

2.Excelでシートを他シートにコピーする

Excelでシートをコピーするために、Workbookオブジェクトを作成し、対象シートのコピーメソッドを使用してコピーを行う

例:現在開いているExcelのtmpシートを新規Bookの末尾にコピーする

Dim newBook As Workbook
Set newBook = Workbooks.Add
ThisWorkbook.Worksheets("tmp").Copy After:=newBook.Sheets(newBook.Sheets.Count)
newBook.Sheets(newBook.Sheets.Count).Name = "シート名"

※作成した新規BookにはSheet1が最初から存在する。

3.Excelで他のBookを印刷する

Excelで他のBookを印刷するために、Workbookオブジェクトを作成し、対象のBookをセットし、特定のsheetを印刷する場合はsheetオブジェクト、Book全体を印刷する場合はBookオブジェクトのPrintOutメソッドを使用することで、印刷が可能。

例:2のnewBook全体を印刷する場合

newBook.PrintOut

4.Excelで他のBookをPDF出力する

Excelで他のBookをPDF出力するために、Workbookオブジェクトを作成し、対象のBookをセットし、特定のsheetを印刷する場合はsheetオブジェクト、Book全体を印刷する場合はBookオブジェクトのExportAsFixedFormatメソッドを使用することでPDF出力が可能。

例:2のnewBook全体をPDF出力する場合

newBook.ExportAsFixedFormat Type:=xlTypePDF, Filename:="出力ファイルパス"

印刷設定を行うことで、印刷方向、用紙サイズ、余白などの設定が可能。

これらの機能を使用することで、テンプレート用Excelファイルでデータ用Excelファイルを開き、印刷、PDF出力が可能。

例:test.xlsの1シート目のA列をシート名にし、B列の値を「項目1」セルにセットし、作成した新規Excelファイルを印刷後、Excelファイルを開いたままにする

Dim book As Workbook
Dim newBook As Workbook
Set book = Workbooks.Open("c:\test.xlsx")
Set newBook = Workbooks.Add
Dim bookRowCnt As Long
Dim sheetName As String
bookRowCnt = book.Sheets(1).Cells(book.Sheets(1).Rows.Count, 1).End(xlUp).Row
For i = 1 To bookRowCnt
    sheetName = book.Sheets(1).Range("A" & i).Value
    ThisWorkbook.Worksheets("tmp").Copy After:=newBook.Sheets(newBook.Sheets.Count)
    newBook.Sheets(newBook.Sheets.Count).Name = sheetName
    newBook.Sheets(sheetName).Range("項目1").Value = book.Sheets(1).Range("B" & i).Value
Next i
newBook.PrintOut
book.Close

コメント