質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

1回答

290閲覧

特定のスライドのオブジェクトの表示を変更するマクロが組みたい

0987kjhfas

総合スコア3

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2022/05/23 00:07

編集2022/05/23 11:12

PowerPointのマクロを利用しているものです。

特定のスライドのオブジェクトの表示を変更するマクロを組みたいのですが、
方法がわかりません。

特定のスライドのオブジェクトの表示を明示する方法についてご教授ください。
イメージ

VBA

1slide(2).label1.Caption = "サンプル"

VBA

1Option Explicit 2 3'スタートボタン押下時のTimer()関数の戻り値 4Dim sStart As Single 5'現在時刻のTimer()関数の戻り値 6Dim sCurrent As Single 7'前回表示を更新した自国のTimer()関数の戻り値 8Dim sPrevious As Single 9'True:カウントアップ false:停止 10Dim bCount As Boolean 11'時間 12Dim iHour As Integer 13'分 14Dim iMin As Integer 15'秒 16Dim iSec As Integer 17Dim strTmp As String 18 19'スライドショーでページが切り替わった時に実行 20Public Sub OnSlideShowPageChange(ByVal Wn As SlideShowWindow) 21 'スライドショー一枚目に切り替えたとき0秒を表示 22 If ActivePresentation.SlideShowWindow.View.Slide.SlideIndex = 1 Then 23 'Label1.Caption = "00:00" 24 Label1.Caption = strTmp 25 End If 26End Sub 27'スライドショーが終了時に実行 28Public Sub OnSlideShowTerminate(ByVal Wn As SlideShowWindow) 29 'タイマーの更新を終了 30 bCount = False 31End Sub 32 33Private Sub StartButton_Click() 34 35 bCount = True 36 37 'sStartに現在の時刻を秒数にしたものを代入 38 sStart = Timer() 39 40 'Lbel1にsStartを表示 41 'CStr 関数は、数値や日付などを文字列型 (String) に変換 42 Label1.Caption = "00:00" 43 44 '更新時刻を記録 45 sPrevious = sStart 46 47 'bCountがtrueの間、タイマーを更新。ストップボタンが押されるとbCountがfalseになりタイマーが止まる 48 Do While (bCount = True) 49 'sCurrentに現在時刻を代入 50 sCurrent = Timer() 51 52 If (sCurrent - sPrevious) >= 1 Then 53 54 '経過秒を表す整数 55 Dim iElapsedSec As Integer 56 iElapsedSec = CInt(sCurrent - sStart) 57 58 iHour = iElapsedSec \ 3600 59 iMin = (iElapsedSec Mod 3600) \ 60 60 iSec = (iElapsedSec Mod 3600) Mod 60 61 62 Dim strHour As String 63 Dim strMin As String 64 Dim strSec As String 65 66 '時間が二桁以外の場合ゼロを足す 67 If iHour >= 10 Then 68 strHour = CStr(iHour) & ":" 69 Else 70 strHour = "0" & CStr(iHour) & ":" 71 End If 72 73 '分が二桁以外の場合ゼロを足す 74 If iMin >= 10 Then 75 strMin = CStr(iMin) & ":" 76 Else 77 strMin = "0" & CStr(iMin) & ":" 78 End If 79 80 '秒が二桁以外の場合ゼロを足す 81 If iSec >= 10 Then 82 strSec = CStr(iSec) 83 Else 84 strSec = "0" & CStr(iSec) 85 End If 86 87 Label1.Caption = strMin & strSec 88 ActivePresentation.Slides(2).Label1.Caption = strMin & strSec 89 strTmp = strMin & strSec 90 sPrevious = sCurrent 91 End If 92 DoEvents 93 Loop 94End Sub 95Private Sub StopButton_Click() 96 bCount = False 97End Sub

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Text = "サンプル"

投稿2022/05/23 03:53

jinoji

総合スコア4585

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0987kjhfas

2022/05/23 04:34

早速の返答ありがとうございます。 もう少し具体的にやりたいことをお伝えしますと、 sheet1とsheet2にlabel1というオブジェクトがあり、 その両者を更新したいです。 sheet1の更新は問題ないのですが、 sheet2の更新がソースではうまくいきません。 ソース(該当部分) ActivePresentation.Slides(2).Label1.Caption = strMin & strSec エラー内容 メソッドまたはデータメンバーが見つかりませんと出てしまいます。 captionの更新で今まで表示を制御していたのですが、 これの問題点わかりますでしょうか。
jinoji

2022/05/23 09:36

コードエディタでプロジェクトを見たときに、 Microsoft PowerPoint Objectの下に、Slide1とSlide2の両方がありますか? それともSlide1だけですか?
0987kjhfas

2022/05/23 11:13

画像追加させていただきました。 元々指定のフォーマットからスライドを削除して利用しているため、 スライドの名称がSlide141とSlide154になっています。
jinoji

2022/05/23 11:21

Slides154.Label1.Caption = strMin & strSec とするのはどうでしょう。
0987kjhfas

2022/05/23 12:48

Slides154.Label1.Caption = strMin & strSec とすると下記エラーが出力されます。 コンパイルエラー 変数が定義されていません
jinoji

2022/05/23 12:50

Slide154でした。
0987kjhfas

2022/05/23 13:04

解決しました! 本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問