今回は参照設定についてです。
参照設定すればExcelだけじゃなく色々な関数が使えます。Excel以外はよくわかりませんが。。。
PowerPointマクロから開いたExcelでどうしても検索をかけたかったのですが、中々この参照設定に辿り着かなくて苦労しました。
それでは以下手順になります。
PowerPointマクロから開いたExcelファイル上でExcelマクロの関数を使う方法
・プレゼンテーションファイルからVisual Basicウィンドウを開く
・画面上のツールタブから参照設定をクリック
・参照設定ウィンドウが開くので、参照可能なライブラリの中からMicrosoft Excel~ を探してチェックを入れる
これでPowerPointマクロ上でExcelマクロの関数が使えるようになります。簡単!
参照設定ウィンドウを開くとけっこうな数のライブラリが表示されます。アルファベット順に並んでいるので頑張ってMicrosoft Excel~ を探して下さい。
次にPowerPointマクロで開いたExcelで検索(vlookup)する方法を記します。
PowerPointマクロから開いたExcelで検索するマクロ
Sub sample()
Dim ExcelApp As Excel.Application
Dim ExcelBook As Workbook
Dim ExcelSheet As Worksheet
Dim BookName As String
Dim day As String
Set ExcelApp = New Excel.Application
BookName = "C:\Users\(ユーザー名)\Documents\ブログ用\ワークシート1.xlsx"
Set ExcelBook = ExcelApp.Workbooks.Open(FileName:=BookName, ReadOnly:=msoTrue)
Set ExcelSheet = ExcelBook.Worksheets("Sheet1")
'ExcelApp.Visible = True
day = WorksheetFunction.VLookup(2, ExcelSheet.Range("A:B"), 2, False)
MsgBox day
ExcelApp.DisplayAlerts = False
ExcelBook.Close
ExcelApp.DisplayAlerts = True
Set ExcelApp = Nothing
Set ExcelBook = Nothing
Set ExcelSheet = Nothing
End Sub
青色がExcelを開く部分、赤がExcel内で検索をかける箇所です。
開くExcelの"ワークシート1.xlsx"には下の様な表が入っています。マクロを動かすとvlookupで"2"を検索したので、2列目の"火"がメッセージボックスに表示されます。
1 | 月 |
2 | 火 |
3 | 水 |
4 | 木 |
5 | 金 |
6 | 土 |
7 | 日 |
'ExcelApp.Visible = True←この行は上のコード内でコメントアウトしていますが、追加すると開いたExcelが表示され、一旦マクロの動作が止まります。閉じるとマクロが再び動きます。
Dim ExcelApp As Excel.Application
Dim ExcelBook As Workbook
Dim ExcelSheet As Worksheet
↑この箇所は開くExcel用のオブジェクトを宣言しています。青色の部分で各オブジェクトにワークシートやシートをSetしています。
PowerPointマクロに含まれていないオブジェクトを使用する場合は、こういうのが必要になるようです。
ExcelApp.DisplayAlerts = False
ExcelBook.Close
ExcelApp.DisplayAlerts = True
↑この箇所で開いたExcelを閉じているのですが、保存しますか?的なメッセージが出ないように設定してから閉じて、メッセージをONに戻しています。
今回は以上です。
これが必要な人がどんなワードで検索するのかわからないでの、タイトルや文章が長くなってしまいました。
この方法を知ってPowerPointマクロの可能性がかなり広がったような気がします。