最終版
スキーム 完全自動化を目指して!
WAVファイルを貼り付けるまで完成しました。
これこそRPAです
動いているのを見ているだけ!
- 完成 パワーポイントのノートを取り出す
- 完成 ノートを読んで行をクリップボードに入れ音読のプロに転記する
- 完成 音読のプロでWAVファイルを作成する ページ番号+行番号.wav
- 完成 パワーポイントのスライドにWAVを貼り付ける
- パワーポイントのスライドでWAVをオブジェクトのアニメーションと同期させる
- ビデオの作成
CreateWAVfrompptxNotes.py
# -*- coding: utf-8 -*-
#pip install pywin32
#pip install pyperclip
#pip install python-pptx
import time
import win32com.client
import win32gui
import pyperclip
import pptx
import time
import os
import glob
def remove_glob(pathname, recursive=True):
for p in glob.glob(pathname, recursive=recursive):
if os.path.isfile(p):
os.remove(p)
def main():
# 音読のプロ出力先を削除
remove_glob("C:/Users/snortgm/Desktop/*.wav")
remove_glob("C:/Users/snortgm/Desktop/*.txt")
wshell = win32com.client.Dispatch('WScript.Shell')
memoapp = win32gui.FindWindow(None,'音読のプロ Premium')
time.sleep(1)
win32gui.SetForegroundWindow(memoapp)
time.sleep(1)
# PPTX読み込み
prs = pptx.Presentation('スマホ入門講座_20211014_ナレーション.pptx')
for page, sld in enumerate(prs.slides, start=1):
lines=sld.notes_slide.notes_text_frame.text
w=lines.split("\n")
n=0
# 1行ごとに名前を付けてWAVを保存する
for line in w:
pyperclip.copy(line)
wshell.SendKeys("%FW"+str(page)+"_+str(n)+"{ENTER}")
n=n+1
time.sleep(2)
if __name__ == '__main__':
main()
#pip install pywin32
#pip install pyperclip
#pip install python-pptx
import time
import win32com.client
import win32gui
import pyperclip
import pptx
import time
import os
import glob
def remove_glob(pathname, recursive=True):
for p in glob.glob(pathname, recursive=recursive):
if os.path.isfile(p):
os.remove(p)
def main():
# 音読のプロ出力先を削除
remove_glob("C:/Users/snortgm/Desktop/*.wav")
remove_glob("C:/Users/snortgm/Desktop/*.txt")
wshell = win32com.client.Dispatch('WScript.Shell')
memoapp = win32gui.FindWindow(None,'音読のプロ Premium')
time.sleep(1)
win32gui.SetForegroundWindow(memoapp)
time.sleep(1)
# PPTX読み込み
prs = pptx.Presentation('スマホ入門講座_20211014_ナレーション.pptx')
for page, sld in enumerate(prs.slides, start=1):
lines=sld.notes_slide.notes_text_frame.text
w=lines.split("\n")
n=0
# 1行ごとに名前を付けてWAVを保存する
for line in w:
pyperclip.copy(line)
wshell.SendKeys("%FW"+str(page)+"_+str(n)+"{ENTER}")
n=n+1
time.sleep(2)
if __name__ == '__main__':
main()
パワーポイントマクロでWAVを貼り付けます(pythonのライブラリが機能しないのでマクロで作りました)
Sub SlideVoice()
Dim i As Long
Dim cd As String
cd = ActivePresentation.Path
Dim wavePath As String
Dim oSlide As Slide
Dim oShp As Shape
With ActivePresentation
dx = 50
wTop = 50
wleft = 50
buf = Dir(cd & "\wav\*.wav")
Do While buf <> ""
FileName = cd & "\wav\" & buf
fn = Replace(buf, ".wav", "")
w2 = Split(fn, "_")
sid = Int(w2(0))
Set oSlide = ActivePresentation.Slides(sid)
Set oShp = oSlide.Shapes.AddMediaObject2(FileName, False, True, wleft, wTop)
Debug.Print FileName
With oShp.AnimationSettings.PlaySettings
.PlayOnEntry = True
.HideWhileNotPlaying = True
End With
wleft = wleft + dx
buf = Dir()
Loop
End With
Dim i As Long
Dim cd As String
cd = ActivePresentation.Path
Dim wavePath As String
Dim oSlide As Slide
Dim oShp As Shape
With ActivePresentation
dx = 50
wTop = 50
wleft = 50
buf = Dir(cd & "\wav\*.wav")
Do While buf <> ""
FileName = cd & "\wav\" & buf
fn = Replace(buf, ".wav", "")
w2 = Split(fn, "_")
sid = Int(w2(0))
Set oSlide = ActivePresentation.Slides(sid)
Set oShp = oSlide.Shapes.AddMediaObject2(FileName, False, True, wleft, wTop)
Debug.Print FileName
With oShp.AnimationSettings.PlaySettings
.PlayOnEntry = True
.HideWhileNotPlaying = True
End With
wleft = wleft + dx
buf = Dir()
Loop
End With
MsgBox "音声埋め込み完了"
End Sub
End Sub