スキップしてメイン コンテンツに移動

DR-P215 のOCR機能で作ったPPTからテキストを取り出す


Canonの卓上スキャナDR-P215にはOCR機能がついてて嬉しいんだけど、読み取ったテキストはPower Pointの「ノート」に1枚1スライドで書き出されるので、テキストデータとして扱いづらい。

全スライドのノートをⅠつのテキストファイルに書き出すマクロを作ってみました。Power Pointのマクロって初めて。
Option Explicit

Public Sub exportNote()
    Dim fileName As String
    fileName = ActivePresentation.Path & "\\" & Replace(ActivePresentation.Name, ".pptx", ".txt")
    Dim fileId As Integer
    fileId = freeFile
    Open fileName For Output As #fileId
    
    Dim s As Slide
    Dim str As String
    Dim slideIndex As Integer
    Dim slides As Integer
    slides = ActivePresentation.slides.Count
    
    For Each s In ActivePresentation.slides
    On Error GoTo ERROR_SLIDE
        slideIndex = s.slideIndex
        If (s.HasNotesPage) Then
            Print #fileId, s.NotesPage.Shapes.Placeholders(2).TextFrame.TextRange.Text
        End If
NEXT_SLIDE:
    Next

    Close #fileId
    
    Exit Sub
ERROR_SLIDE:
    MsgBox slideIndex
    On Error GoTo 0
    GoTo NEXT_SLIDE
End Sub

使い方

スキャナの設定

スキャナ背面のAuto StartスイッチはOFFの状態でPCに接続する。
CaptureOnTouchの画面左下「+」をクリックして以下の設定をジョブ登録:
  • 出力方法=フォルダに保存
  • 継続スキャン=ON
  • フルオートモード=OFF
  • スキャナーの設定>解像度=300dpi
  • スキャナーの設定>文字の向きに合わせて画像を回転=ON
  • 出力の設定>ファイル形式=PPTX
カラーモードやファイル名はお好みで。私はテキストにしか用はないのでグレースケール、ファイル名は書名+連番。

スキャンする

20枚くらいずつ、表を下にしてスキャン(たまに使うと向き忘れてる、、、)。

テキストをまとめる

上記マクロを適当なPower Pointファイルに保存する(このファイルは開いておく)。
スキャンして作られたpptxファイルを開いて、マクロを実行。
対象pptxファイルと同じ名前、同じ場所にテキストファイルが作られます。

最後は手作業、、、

図やノンブルや柱や天地の文字を取り去ったり、拗音長音が結構ちがったりするのを手直し。

コメント

このブログの人気の投稿

GAS 同一カラムを複数条件でfilterできない件

Google Apps Script でSpreadsheetをデータベース代わりにwebアプリをポチポチ作ってて、スクリプトからSpreadsheetにフィルタかける場合、同一カラムに複数条件を設定できないことを知って残念……。 フィルタのかけ方はこんな感じ。 日付を範囲指定したいけど、After、Before片方しかつけられない。 var dataFile = SpreadsheetApp.openById(DATA_FILE_ID); var sh = dataFile.getSheetByName(LOG_SHEET_NAME); var criteriaDateAfter = SpreadsheetApp.newFilterCriteria().whenDateAfter(new Date(targetDate)).build(); var criteriaUserEqual = SpreadsheetApp.newFilterCriteria().whenTextEqualTo(user.id).build(); if (sh.getFilter()) { sh.getFilter().remove(); } var r = sh.getRange(1, 1, sh.getLastRow(), sh.getLastColumn()) .createFilter() .setColumnFilterCriteria(DATE_COL, criteriaDateAfter) .setColumnFilterCriteria(USER_ID_COL, criteriaUserEqual) .getRange(); FilterCriteriaに2回条件設定してみたり var criteriaDateRange = SpreadsheetApp.newFilterCriteria() .whenDateAfter(new Date(date1)) .whenDateBefore(new Date(date2)).build(); 同じカラムに2回条件設定してみたり var r = sh.getRange(1, 1, sh.get...

ジップロックで堆肥づくり

2012/11/02『家庭でできる堆肥づくり百科』を見てビニール袋と生ゴミで堆肥づくりに初挑戦。 ・生ごみ 250ml (細かく刻む) ・庭の土 120ml ・水 大さじ2 ・アルファルファ粉末 大さじ1 (ウサギのペレットを砕いた) 袋はジップロック大を使用。 毎日揉む(切り返し)、1日おきに空気を入れ替える。4~8週間でできるらしい。 保温のことは書いてなかったけど発砲スチロール箱に入れてみた。うまく行くといいなあ。 2012/11/07 道路掃除の方に落ち葉をもらったので一掴みいれてみる。生ゴミは窒素やや多めらしく、炭素系の落ち葉を足したらいいかなと。 2012/11/12 10日経ってニオイが落ちついてきたかも。腐ってる臭いではないけどツンとする臭いがずっとしてた。発泡スチロール箱を蓋すれば気にならない(ジップロックには全く遮断されないので、袋だけで室内に置くのは避けたい)。材料がネギとミカンなせいかなあ。見た目は一向に変わらず。

その4 Excel VBAでAmazon Product Advertising API

引っ越すためついに本気で書籍リストを作っていると、どれほど少しでも省力化したくなり、しつこくバージョンアップ。 ISBNのない外国の本も検索したい ISBNのない本が思ったより多かった。フランス語のアクサンとか入力したくない。ISBNでの検索はamazon.com, amazon.frなど検索先を切り替えているように、タイトル等での検索も各国サイトを利用したい。 最初は「jpで見つからなければcom、見つからなければfr、、、」と思ったけど、だいぶ待たされちゃうし、その本のデータをどこで探したいかは決まってるので、それぞれ別のプロシージャを定義して実行できるようにした。 Public Sub searchBookInfoFromAmazonFr(dummy As Integer) searchBookInfo (amazonFr) End Sub さて、クイックアクセスツールバーに登録するのだけど、用意されてるアイコンじゃわかりづらい。各国の旗がいいんじゃないか。と思ってからが長かった・・・が、まとめれば: 旗アイコンは ここ で入手。 Ribbon Editor でリボンに自前のタブ・ボタンを登録 対象のExcelファイルを開く 右のDocument Explorerペインで「CustomUI Parts」を追加 表示される編集ペインのImageタブを開き、好きな画像を追加(From File System) Codeタブに下記Xmlを書いて保存、終了 Excelを開くとカスタム・ボタンが登録されているので、ふつうにクイックアクセスツールバーにも登録 <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> <ribbon startFromScratch="false"> <tabs> <tab id="customMacro" label="custom macro"> <group id="custo...