teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

文字修正

2021/02/28 05:49

投稿

ohikazuma
ohikazuma

スコア17

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- パワーポントのVBAを使って音声読み上げ機能は出来ました。
1
+ パワーポントのVBAを使って音声読み上げ機能は出来ました。
2
2
  そして、同一スライドで、音声を読み上げた後にアニメーションを動かし、次の音声後に次のアニメーションを動かしたいと、思ってNetを調べたのですが…
3
3
  アニメーションのプロパティの設定方法は見つかるのですが、実際にアニメを一づつ動作させるような方法が見つかりませんでした。
4
4
  漠然とした質問で申し訳ありませんが、何方かご存知の方はいらっしゃらないでしょうか。

1

サンプルプログラム追加

2021/02/28 05:49

投稿

ohikazuma
ohikazuma

スコア17

title CHANGED
File without changes
body CHANGED
@@ -2,4 +2,65 @@
2
2
  そして、同一スライドで、音声を読み上げた後にアニメーションを動かし、次の音声後に次のアニメーションを動かしたいと、思ってNetを調べたのですが…
3
3
  アニメーションのプロパティの設定方法は見つかるのですが、実際にアニメを一づつ動作させるような方法が見つかりませんでした。
4
4
  漠然とした質問で申し訳ありませんが、何方かご存知の方はいらっしゃらないでしょうか。
5
- ヒントでもかまいません。
5
+ ヒントでもかまいません。
6
+
7
+
8
+ [参考プログラム]
9
+ ```VBA
10
+
11
+ Public Sub CommandButton実行_Click()
12
+
13
+ Call 音声読み上げ("これから現状分析します")
14
+
15
+ Sleep 500
16
+ Call 音声読み上げ("これが既存の状態です。")
17
+
18
+   ’ここで図形表示したい!!!
19
+
20
+ Sleep 2000
21
+ Call 音声読み上げ("最大の問題はこれです。")
22
+
23
+   ’ここで図形表示したい!!!
24
+
25
+ 'ノート欄の文字列を取得する場合はこちら
26
+ Dim strNote As String
27
+ strNote = NotesPage.Shapes.Placeholders(2).TextFrame.TextRange.Text
28
+
29
+ Call 音声読み上げ(strNote)
30
+
31
+ End Sub
32
+
33
+ Public Sub 音声読み上げ(strNote As String)
34
+
35
+ '' ノート欄が空の場合は,読み上げ処理を行わずに終了
36
+ If strNote = "" Then
37
+ Exit Sub
38
+ End If
39
+
40
+ '' 音声合成エンジンを取得
41
+ Dim sv As Object
42
+ Set sv = CreateObject("SAPI.SpVoice")
43
+
44
+ '' インストールされている音声合成エンジンのうち、最初に見つかった日本語のものを選択
45
+ For i = 0 To sv.GetVoices.Count - 1
46
+ If InStr(sv.GetVoices.Item(i).GetDescription, "Japanese") Then
47
+ Set sv.Voice = sv.GetVoices.Item(i)
48
+ Exit For
49
+ End If
50
+ Next
51
+ '' 日本語のエンジンが見つからなかった場合
52
+ If InStr(sv.Voice.GetDescription, "Japanese") < 1 Then
53
+ '' 発見に失敗した旨をメッセージボックスで通知
54
+ MsgBox "日本語のエンジンが見つかりませんでした。" & vbCrLf & _
55
+ "現在の設定 : " & sv.Voice.GetDescription
56
+ Exit Sub
57
+ End If
58
+
59
+ '' 音声合成実行
60
+ sv.Speak strNote
61
+
62
+ '' 音声合成エンジンを開放
63
+ Set sv = Nothing
64
+
65
+ End Sub
66
+ ```