Excelのシートの値を順番に取得しパワポのノート部分に設定してく【PowerPointVBA】
Slide.NotesPageプロパティでスライドのノート部分を取得する。
順番にオブジェクトを辿っていき、ノート部分の図形のテキスト枠のテキスト範囲のテキストまでいき
そこに指定した文字列を入れるだけ。
先にサンプルコードでその後解説内容。
実際に使用したサンプルコード ーーーーーーーーーーーーーーーーーーーー
Public Sub Sample()
'エクセルアプリケーションをexcelAppで使用できるように生成
Dim excelApp As New Excel.Application
'エクセルアプリケーションを表示設定
excelApp.Visible = True
'エクセルのワークブック用の変数を用意
Dim excelWorkbook As Excel.Workbook
'指定したエクセルブックを開いてexcelWorkbookにセット
Set excelWorkbook = excelApp.Workbooks.Open(ActivePresentation.Path & "\sample.xlsx")
'iという整数型の変数を用意する
Dim i As Integer
'iを1から5まで1ずつ増やしながら繰り返す
For i = 1 To 5 Step 1
'開いたブックのシート1枚目のセルの1行目、1列目の値を取得し
'アクティブなプレゼンテーションの1枚目のノート部分に取得した値を入れる
ActivePresentation.Slides(i).NotesPage.Shapes("ノート プレースホルダー 2").TextFrame.TextRange.Text = excelWorkbook.Worksheets(1).Cells(i, 1).Value
Next
'エクセルアプリケーションを閉じる
excelApp.Quit
End Sub
アクティブなプレゼンテーションから
スライドの1枚目を指定し
ノート部分をNotesPageプロパティで指定する。
ノート部分は表示タブのノートから確認すると、図形になっている。
図形の詳細を見る為に、ホームタブの編集、選択からオブジェクトの選択と表示を押す。
図形の名前を確認することができる。
この環境下ではノートプレースホルダー2となっていた為、この名前で図形を指定する。
そして図形のテキスト枠の
テキスト範囲のテキストを指定し
そのテキストに右側の値を入れる(Let)
後はExcelのデータから順番にノート部分に入れていくだけ。
参照設定でExcelを使用できるようにし。
変数を宣言する際にExcel.Applicationを指定し、Excelアプリを変数で使用可能にする。
変数名.で機能が使用できればOK。
VisibleプロパティでExcelの表示設定をオンにするが、しなくてもよい。
プレゼンテーションと同じ場所にあるファイル名を指定してファイルを開く。
ExcelのWorkbooks.Openメソッドで開く。
Setステートメントで変数と開いたExcelブックを繋げる。
後はそのブックから操作していく。
1枚目のシートを指定し。
1行目の1列目の値を取得する。
それをノート部分に入れる。
終わったら、Excelアプリを終了させておく。Application.Quitメソッドを使用。
ここまでのコード。サンプル。
後は繰り返し処理をセルがある分だけ実行する。
繰り返し用のカウンタ変数を用意し、繰り返す。
5回だけでいいので5を指定し、1ずつ増やす。
スライドとCellsの行番号を変数に変換する。
これで実行したらExcelの1行目の1列目の値が1枚目のスライドのノートに入り
2枚目のスライドに2行目の1列目の値が入り…と順番に入る。
Excelの内容をノートに転記したい場合に使用したいと思っている。