もめんの格闘日記

主にPowerPointを中心としたPCのTips的なものを書いていく予定です。

【PowerPointマクロ】プレゼンテーションから開いたExcelファイルでExcel VBAの関数を使う方法

今回は参照設定についてです。

参照設定すればExcelだけじゃなく色々な関数が使えます。Excel以外はよくわかりませんが。。。

PowerPointマクロから開いたExcelでどうしても検索をかけたかったのですが、中々この参照設定に辿り着かなくて苦労しました。

それでは以下手順になります。

 

PowerPointマクロから開いたExcelファイル上でExcelマクロの関数を使う方法

・プレゼンテーションファイルからVisual Basicウィンドウを開く

・画面上のツールタブから参照設定をクリック

f:id:momen40:20170601204312j:plain

・参照設定ウィンドウが開くので、参照可能なライブラリの中から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マクロの可能性がかなり広がったような気がします。