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に送ることができるようになりました。



















この記事へのコメントはありません。