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


コメント