kadonopage
2026年10月19日月曜日
パワーポイントで、スライドをランダムに表示するが、クリックで次のスライドに進むようにする
アニメーションウィンドウで、ここの設定を忘れないように。
-------------------------------------------------------------------------------------------------Sub RandomSlideShow()
Dim totalSlides As Integer
Dim i As Integer, j As Integer
Dim temp As Integer
Dim slideArray() As Long ' SlideIDはLong型推奨
totalSlides = ActivePresentation.Slides.Count
ReDim slideArray(1 To totalSlides)
' スライドIDを配列に取得(インデックス順)
For i = 1 To totalSlides
slideArray(i) = ActivePresentation.Slides(i).SlideID
Next i
' シャッフル(フィッシャー・イェーツ)
Randomize
For i = totalSlides To 2 Step -1
j = Int(Rnd() * i) + 1
temp = slideArray(i)
slideArray(i) = slideArray(j)
slideArray(j) = temp
Next i
' カスタムスライドショーの設定名
Dim customName As String
customName = "RandomShow"
' 既存の同名設定があれば削除
On Error Resume Next
ActivePresentation.SlideShowSettings.NamedSlideShows(customName).Delete
On Error GoTo 0
' 配列からスライドIDのリストを作成してカスタムショーを追加
ActivePresentation.SlideShowSettings.NamedSlideShows.Add _
Name:=customName, SafeArrayOfSlideIDs:=slideArray
' スライドショーを開始
With ActivePresentation.SlideShowSettings
.RangeType = ppShowNamedSlideShow
.SlideShowName = customName
.Run
End With
End Sub
パワーポイントで、スライドをランダムに数秒ごとに表示するマクロ
このままパワーポイントのVBAに貼り付けるといい。
------------------------------------------------------------------------------------------------
Sub RandomSlideShow_NoRepeat_Final()
Dim totalSlides As Long
Dim i As Long, j As Long, temp As Long
Dim slideIndices() As Long
Dim startTime As Single
Const WAIT_TIME_SECONDS As Single = 2
Dim slWindow As SlideShowWindow
' 1. スライドの総数を取得
totalSlides = ActivePresentation.Slides.Count
If totalSlides <= 1 Then
MsgBox "スライドが2枚以上必要です。", vbCritical
Exit Sub
End If
' 2. 未表示スライドのインデックス配列を作成
ReDim slideIndices(1 To totalSlides)
For i = 1 To totalSlides
slideIndices(i) = i
Next i
' 3. 配列をランダムにシャッフル (フィッシャー・イェーツのアルゴリズム)
Randomize
For i = totalSlides To 2 Step -1
j = Int(Rnd() * i) + 1
temp = slideIndices(i)
slideIndices(i) = slideIndices(j)
slideIndices(j) = temp
Next i
' 4. スライドショーを開始
If SlideShowWindows.Count = 0 Then
ActivePresentation.SlideShowSettings.Run
End If
' ウィンドウが作成されるまで待機
startTime = Timer
Do While ActivePresentation.SlideShowWindow Is Nothing And (Timer - startTime < 5)
DoEvents
Loop
Set slWindow = ActivePresentation.SlideShowWindow
If slWindow Is Nothing Then Exit Sub
' 5. 配列の順番通りに表示 (すでにシャッフル済みなのでランダムになる)
For i = 1 To totalSlides
' スライドショーが閉じられていたら終了
If SlideShowWindows.Count = 0 Then Exit Sub
' スライド移動
slWindow.View.GotoSlide slideIndices(i)
' 待機ループ (ESCで中断対応)
startTime = Timer
Do While Timer - startTime < WAIT_TIME_SECONDS
DoEvents
If SlideShowWindows.Count = 0 Then Exit Sub
Loop
Next i
' 全て表示完了したら終了
MsgBox "すべてのスライドを表示しました。終了します。"
Set slWindow = Nothing
End Sub
------------------------------------------------------------------------------------
ネットワークでつないだ複数のコンピュータが再びつながらなくなった
前に一度設定したことが、また駄目になっていました。
することは、限られています。
------------------------------------------------------------------------------------------------------------------
手順1:ネットワークプロファイルが「プライベート」になっているか確認する
Windowsでは、ネットワークが「パブリック(公共)」になっているとセキュリティ上の理由からファイル共有が無効になります。2台のパソコン両方で確認します。
「スタート」ボタンを右クリック(または「設定」を開く)し、[設定] > [ネットワークとインターネット] を開きます。
接続している「Wi-Fi」または「イーサネット(有線LAN)」の項目をクリックします。
ネットワークプロファイルの種類が [プライベート ネットワーク] になっていることを確認します。
もし「パブリック ネットワーク」になっていたら、[プライベート] に変更します。
手順2:「ネットワーク探索」と「ファイル共有」を有効にする
両方のパソコンで、ネットワーク上の他の機器を探す設定を有効にします。
キーボードの [Windows]キー + [R]キー を同時に押し、出てきた画面に control と入力して [Enter] を押します(コントロールパネルが開きます)。
[ネットワークと共有センター] をクリックします。
左側のメニューにある [共有の詳細設定の変更] をクリックします。
「プライベート」の項目で以下のラジオボタンを選択します:
[ネットワーク探索を有効にする] (および「ネットワークに接続されているデバイスの自動設定を有効にする」にチェック)
[ファイルとプリンターの共有を有効にする]
「すべてのネットワーク」の項目を開き、必要に応じて [パスワード保護共有を無効にする] にすると、接続時のログインの手間を省くことができます(※セキュリティを重視する場合は有効のままでも構いませんが、その場合は両PCのユーザー名・パスワードを一致させる必要があります)。
-------------------------------------------------------------------------------------------------------------
これだけしかすることがありません。再度同じことを設定しなおしました。でも、しばらくは、うまくつながりません。何度か同じ操作をしているうちに、つながりました。
その原因を調べました。









