2017年11月14日追記 ここで紹介しているサンプルコードでは取得できない文字列があります。 グループ化されたShape内の文字列は処理対象外です。ご注意ください。
今回の翻訳案件は、262ページのPowerPoint資料です。
納期まであまり翻訳時間がとれそうにないけど、どうやって翻訳やるんだろうか?マクロの作成のご依頼もいただいているし、セミナーあるし、723イベントあるし。。。
と、受注してからちょっと焦りましたが、やっぱり、ホームであるWordで翻訳をすることにしました。
以前、PowerPointで翻訳をしたことがあったのですが、苦痛以外のなにものでもありませんでしたので。
右クリックでGoogle!が使えないし、カーソル移動も大変だし。
そんなわけで、一旦Wordで翻訳をした後に、そのフレーズや文章の訳文を用いて、PowerPointで一括置換をします。
そうすれば、おそらく、完成するのではないでしょうか。
で、やっぱり、こういうときは、伊藤潔人さんのインストラクターのネタ帳でPowerPointマクロを探します。
以前は、PowerPointのノート部分の翻訳をしたときに、インストラクターのネタ帳からいただいたアイディアでマクロを作って大助かりでした。
今回も探してみると、すぐに見つかりました。
こちらの記事です。
このマクロは、スライド毎に、スライド内のテキストをそのスライドのノートに転記します。
最初は、この方式でテキストをかき集めて、最終スライドのノートに全テキストを転記するようなマクロを書きました。
そしたら、処理時間がかかるんですね。
String変数にひたすらテキストを書き込んでいくのですが、それにまず時間がかかりますし、最終スライドのノートが1万語を超えるような大きさになりますので、こちらも重すぎるわけです。。。
で、最終的には、別ファイルにテキストで書き出すことにしました。
そのときに思いついたのは、きぬあささんのこちらの記事
マクロに割り当てたショートカットキーをCSVファイルとして出力するWordマクロ
今週末のサン・フレア アカデミーさんのセミナーに向けて、ショートカットキーのマクロを作っていました。
そのときにこのマクロを参考にさせていただいたので、なんとなく覚えておりまして(笑)。
<目次>
このマクロでできること
PowerPointのスライドの文字列をテキストファイルに書き出します。
テキストファイルは、デスクトップに保存されます。
ファイル名は、対象となるPowerPointのファイル名の最後に、.txtをつけたものです。
ソフトリターン(Wordでは、↓と表示される改行記号、Chr(11)または、^lですね)も、テキストファイルで保持されるようです。
マクロの解説
全体の動きは、インストラクターのネタ帳からいただきました。
スライド番号を入れたかったので、墨付き括弧で全角数字を入れています。
その部分は24行目に表記きました。
テキストファイルに書き出す部分は、13行目~16行目、24行目、40行目に表記しました。
特に、デスクトップにファイルを置く方法については、初心者備忘録 の記載が大変参考になりました。
ありがとうございました。
マクロ
Sub パワポのスライドのテキスト書出し() Dim mySlide As Slide Dim myShape As Shape Dim i As Integer Dim myFilePath As String If MsgBox("文字列をテキストファイルへ書出しますか?", vbYesNo) = vbNo Then Exit Sub i = 0 'テキストの出力先ファイル(デスクトップにテキストファイル) myFilePath = CreateObject("WScript.Shell").SpecialFolders("Desktop") & _ "\" & ActivePresentation.Name & ".txt" Open myFilePath For Output As #1 For Each mySlide In ActivePresentation.Slides i = i + 1 With mySlide Print #1, "【" & StrConv(i, vbWide) & "】" For Each myShape In .Shapes With myShape If .HasTextFrame Then Print #1, .TextFrame.TextRange.Text End If End With Next myShape End With Next mySlide Close #1 MsgBox "書出しが、完了しました。" End Sub
関連記事
スライド内の全文字列をノートに転記する インストラクターのネタ帳
マクロに割り当てたショートカットキーをCSVファイルとして出力するWordマクロ 初心者備忘録
お知らせ
7月29日(日)にインストラクターのネタ帳 の伊藤潔人さんとWordマクロに関するコラボセミナーをさせていただきます。
オフィス製品を知り尽くした伊藤さんが、どんな切り口で解説をされるのか楽しみで仕方がありません!
しかも、きぬあささんもすでに受講のお申し込みをされているそうですし。twitterでつぶやかれていたので、いいですよね、ここに書いても(笑)。
ぜひ、みなさまもお越しください。
コメント
-
3. 書き戻しはどうするのでしょうか?
抽出はわかりましたが、書き戻しはどうするのでしょうか?
あと、buckeyeさんの SimpyTerms では、スライドしか抽出できず、ノート部分は抽出できないですよね? buckeyeさんに聞くべきかもしれませんが、もしも SimpyTerms でのノート抽出方法をご存じでしたら、ついでに教えていただけますと助かります。
どうぞよろしくお願いいたします。