OneNote プリンタードライバー([OneNote 20XX に送る]プリンター)を使ってドキュメントを印刷すると、印刷した情報がそのままOneNoteに送られます。
この機能を使えば簡単に選択範囲をOneNoteに取り込むことができるので、早速試してみました。
Option Explicit Public Sub SendToOneNote() 'PrintOutメソッドを使ってOneNoteに選択範囲を送る Dim prnON As String Dim tmp As String prnON = GetOneNotePrinterName If Len(Trim(prnON)) < 1 Then Exit Sub tmp = Application.ActivePrinter On Error Resume Next Selection.PrintOut ActivePrinter:=prnON On Error GoTo 0 Application.ActivePrinter = tmp End Sub Private Function GetOneNotePrinterName() As String 'OneNoteプリンター名取得 Dim ret As String Dim colItems As Object Dim itm As Object ret = "" '初期化 On Error Resume Next Set colItems = CreateObject("WbemScripting.SWbemLocator").ConnectServer.ExecQuery("Select * from Win32_Printer") For Each itm In colItems If InStr(LCase(itm.DriverName), "onenote") Then ret = itm.Name Exit For End If Next On Error GoTo 0 GetOneNotePrinterName = ret End Function
上記の通り、単にプリンターとしてOneNote プリンタードライバーを指定して選択範囲を印刷しているだけのマクロですが、とりあえず、これで簡単にExcelデータをOneNoteに送ることができるようになりました。
この記事へのコメントはありません。