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の内容をノートに転記したい場合に使用したいと思っている。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です