よろしくお願いいたします。
パワーポイントのマクロを使って添付画像にある3つの数字(number1,2,3)を
ボタン(兜のイラスト)を押した後に5回シャッフルしてランダムな数字を表示したいと考えております。
ボタンを押したらランダムに数字を表示させることは出来たのですが、
5回シャッフルした後に表示させるマクロの書き方が分からなかったので教えてください。
下記が現在のマクロです。
Sub Test()
Randomize
With ActivePresentation.Slides(1).Shapes("number1")
.TextFrame.TextRange.Text = Int((10 * Rnd) + 1)
End With
With ActivePresentation.Slides(1).Shapes("number2")
.TextFrame.TextRange.Text = Int((10 * Rnd) + 1)
End With
With ActivePresentation.Slides(1).Shapes("number3")
.TextFrame.TextRange.Text = Int((10 * Rnd) + 1)
End With
End Sub
またシャッフル中の数字も見えるようにしたいです。
イメージ的にはこの方のYouTube動画のような数字の動きです。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
No1です。
連投失礼。
No1は、短時間に2度クリックされることを考慮していませんでした。
(試してはいませんが、IDが上書きされるので止まらなくなるはず)
最初に
If mTimerID <> 0 Then Exit Sub
などを入れて、防止しておいてください。
No.1
- 回答日時:
こんにちは
Shapeということは、対象がテキストボックスなどということでしょうか?
基本的には、適当な時間間隔を置いて、ご提示の処理を繰り返せば良いのですが、当方の環境では画面のリフレッシュがされないようです。(Office 2019)
旧い記事では、DoEventsで一旦制御を渡せば、リフレッシュされるような雰囲気なのですが、試してみたところ反映されませんね。
表示要素をChartを利用するように変えれば、Refresh メソッドがあるので再描画可能と思いますが、Shapeの場合はそのようなメソッドもなさそうです。
ですので、以下は、APIのSetTimerを利用する方法にしてあります。
(他にも方法はあるかも知れませんけれど・・)
スライドショー実行中に動作することで良いものと解釈しました。
(実行中でないと動作しませんので、ご注意。)
※ AddressOfを利用する関係で、以下は標準モジュールに記載する必要があります。
※ その上で、トリガー(画像クリック?)から、startShuffleを呼び出すようにしてください。
※ 対象のShapeは表示中のスライドの、Nameが number1、number2、number3と決め打ちにしてあります。
Private Declare PtrSafe Function SetTimer Lib "USER32" (ByVal hwnd As Long, _
ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As LongPtr) As Long
Private Declare PtrSafe Function KillTimer Lib "USER32" (ByVal hwnd As Long, _
ByVal nIDEvent As Long) As Long
Private mTimerID As Long
Private cnt As Long
Sub startShuffle()
cnt = 0
mTimerID = SetTimer(0&, 1&, 150&, AddressOf changeText)
End Sub
Sub changeText()
Dim i As Long
If mTimerID = 0 Then End
With ActivePresentation.SlideShowWindow.View.Slide
For i = 1 To 3
.Shapes("number" & i).TextFrame.TextRange.Text = Int(10 * Rnd)
Next i
End With
cnt = cnt + 1
If cnt > 5 Then
Call KillTimer(0&, mTimerID)
mTimerID = 0
End If
End Sub
※ もしも32ビット環境の場合には、関数宣言の「PtrSafe」等を除いてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
このQ&Aを見た人はこんなQ&Aも見ています
-
餃子を食べるとき、何をつけますか?
みんな大好き餃子。 ふと素朴な疑問ですが、餃子には何をつけて食べますか? 王道は醤油とお酢でしょうか。
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。 「そうなんだね」と「確かに披露する場所ないね」で評価します。
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
2024年のうちにやっておきたいこと、ここで宣言しませんか?
2024年も残すところ50日を切りましたね。 ことしはどんな1年でしたか? 2024年のうちにやっておきたいこと、 よかったらここで宣言していってください!
-
お風呂の温度、何℃にしてますか?
みなさん、家のお風呂って何℃で入ってますか? ぬるめのお湯にゆったり…という方もいれば、熱いのが好き!という方もいるかと思います。 我が家は平均的(?)な42℃設定なのですが、みなさんのご家庭では何℃に設定していますか?
-
パワーポイントのVBAでテキストボックスに値を変更させたいです
Visual Basic(VBA)
-
パワーポイントでランダムに表示させる方法
PowerPoint(パワーポイント)
-
office365パワーポイントでBINGOカード
PowerPoint(パワーポイント)
-
-
4
拡張できる抽選用のフリーソフトを欲しい
PowerPoint(パワーポイント)
-
5
顔写真等の画像をルーレット形式で抽選するソフト
フリーソフト
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでツールバーに「縮小...
-
Powerpointでランダムな数字の...
-
複数のデータ系列の線の太さを...
-
ファイル名を今日の日付、時刻...
-
エクセルVBAで、画像の倍率を知...
-
cellsで特定の離れた範囲を選択...
-
ピボットグラフの書式の固定に...
-
VBAを使ってエクセルシート...
-
Pictures.Insertメソッド⇒Shape...
-
エクセル2010 Shapeをクリップ...
-
【VC++6.0(MFC)】コメントを一...
-
VBA[Private Sub]のコードをシ...
-
VBからPowerPointのマクロを実...
-
最初の1回のみにボタンクリッ...
-
VisualStudioのアウトライン機...
-
テキストボックスのカーソル位置
-
VBA ChartWizardで円グラフが書...
-
VBAで実行時エラー '1004'の解...
-
複数のグラフを整列させて表示...
-
VBAでグラフXj軸の文字列を左90...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
Powerpointでランダムな数字の...
-
ファイル名を今日の日付、時刻...
-
cellsで特定の離れた範囲を選択...
-
VBA[Private Sub]のコードをシ...
-
VBAを使ってエクセルシート...
-
ピボットグラフの書式の固定に...
-
どのドキュメントは暗号化され...
-
エクセルのマクロでSelection.S...
-
Pictures.Insertメソッド⇒Shape...
-
最初の1回のみにボタンクリッ...
-
別ブックからユーザーフォーム...
-
エクセル2007 テキストボ...
-
エクセルシートをまとめて印刷...
-
【ExcelVBA】クエリの更新とピ...
-
wordのマクロで縮小して貼り付...
-
エクセルのストップウォッチ
-
エクセルワークシート上に印刷...
-
Excelのラジオボタンにチェック...
おすすめ情報