![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
週に1度の会議中にプロジェクターに写したExcel(共有ブック)をベースとした資料からPowerPointファイルのスライドショーを開きたいと思っているのですが、ハイパーリンクだと編集画面が開くため、その度にスライドショーの操作をしなくてはいけませんので最初からスライドショーで開きたいと思っています。また、Excel内のPowerPoint(各部署が編集したものが共有フォルダに入っている)のファイル数が多いため、スライドショー形式で保存したファイルをリンクというのは避けたいと考えています。ハイパーリンクのアドレスの編集でどうにかなったりするでしょうか。
ご教授ねがいます。
No.3ベストアンサー
- 回答日時:
プレゼンファイル(ppt*)をスライドファイル(pps)に変更して保存するVBAです。
使用するプレゼンファイル(複数)をローカルのフォルダに保存して実行してください。
UIは、保存されているフォルダを聞いてきますのでそのフォルダを選択してください。
デスクトップに日付+SlideShow名のフォルダが作成され、.ppt*のファイルを.ppsに書き換え保存します。元ファイルはそのままです。
①と②の方法を記載しました。①は、開き保存します。②はそのままコピペする時に拡張子を変えています。②をはじめ作成しましたが、ppsxで保存すると
セキュリティソフト~のメッセージで開けませんでしたので①を作成しました。しかし、こちらの保存方法でも拡張子は、.ppsになるようです。
.ppsなら①でも問題ないので①の方が処理が早く良いでしょう。
必要なファイルをローカルのフォルダに保存しているので管理、リンクも分かり易いかと思いますが。
取り敢えずOfficeのバージョン記載がないので、ここで妥協します。不明な点は質問してください。
①は、ppSaveAsShowを使用する為、Microsoft PowerPoint X.X Object Libraryの参照をしてください。
Sub PPSX1()
Dim FSO As Object
Dim fol_Path, SaveDir, Bf, f, Exte
Dim Pwp As Object
Dim Prs As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Pwp = CreateObject("PowerPoint.Application")
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = ThisWorkbook.Path
If .Show = True Then
fol_Path = .SelectedItems(1) & "\"
End If
End With
If fol_Path = "" Then Exit Sub
'デスクトップに日付+SlideShow名のフォルダが作成される
SaveDir = CreateObject("WScript.Shell").SpecialFolders("desktop") & "\" & Format(Date, "yyyymm") & "SlideShow"
If Dir(SaveDir, vbDirectory) = "" Then
MkDir SaveDir
End If
For Each f In FSO.GetFolder(fol_Path).Files ' フォルダ内のファイルを取得
Bf = FSO.GetBaseName(fol_Path & "\" & f.Name)
Exte = FSO.GetExtensionName(fol_Path & "\" & f.Name)
If Exte Like "ppt*" Then
'①開いてppSaveAsShowで保存
Set Prs = Pwp.Presentations.Open(fol_Path & "\" & f.Name, WithWindow:=False)
With Prs
.SaveCopyAs SaveDir & "\" & Bf, ppSaveAsShow '検証結果 最新形式ppsxにならない?
.Saved = True
.Close
End With
'------
End If
Set Prs = Nothing
Next
Set Pwp = Nothing
Set FSO = Nothing
End Sub
'SaveAs メソッドについては、https://docs.microsoft.com/ja-jp/office/vba/api/ …
②不具合がなければこちらで良いかと思います。
Sub PPSX2()
Dim FSO As Object, f
Dim fol_Path As String, SaveDir As String
Dim Bf As String, Exte As String
Set FSO = CreateObject("Scripting.FileSystemObject")
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = ThisWorkbook.Path
If .Show = True Then
fol_Path = .SelectedItems(1) & "\"
End If
End With
If fol_Path = "" Then Exit Sub
'デスクトップに日付+SlideShow名のフォルダが作成される
SaveDir = CreateObject("WScript.Shell").SpecialFolders("desktop") & "\" & Format(Date, "yyyymm") & "SlideShow"
If Dir(SaveDir, vbDirectory) = "" Then
MkDir SaveDir
End If
For Each f In FSO.GetFolder(fol_Path).Files ' フォルダ内のファイルを取得
Bf = FSO.GetBaseName(fol_Path & "\" & f.Name)
Exte = FSO.GetExtensionName(fol_Path & "\" & f.Name)
If Exte Like "ppt*" Then
FileCopy fol_Path & "\" & f.Name, SaveDir & "\" & Bf & ".pps"
End If
Next
Set FSO = Nothing
End Sub
’メッセージなどを出力したい場合は、追加してください。
詳細な返信ありがとうございます◎
VBAは数回簡単なものをコピペして使っただけなので非常に難しく感じてしまいますが最初のものから試してみたいと思います。
No.2
- 回答日時:
なるほど、
VBAでスライドショーで開くコードです。が終了する時は編集画面が出ます。
参考まで、、、あと多くのプレゼンファイルをマクロでスライドショー形式で別フォルダに保存する事も出来ますね。
それはまた後で
Option Explicit
Sub PP_slideOpen()
Dim Pwp As Object
Dim Prs As Object ' Presentation
Set Pwp = CreateObject("PowerPoint.Application")
Set Prs = Pwp.Presentations.Open(Range("A1").Text)
Prs.SlideShowSettings.Run
Set Prs = Nothing
Set Pwp = Nothing
End Sub
Range("A1")にプレゼンファイルのフルパスの記載があるとしています。
No.1
- 回答日時:
こんにちは、
>ファイル数が多いため、スライドショー形式で保存したファイルをリンクというのは避けたいと考えています。
ファイルを*.ppsx (スライド ショー) で保存すると出来る事は知っているが、さらに数が増えるのを避けたいと言う事でしょうか?
これは、ファイル管理の問題で数千ファイルあっても必要ファイルは作成せざる負えないのではないでしょうか?
または、ちょっとカッコ悪いですが、現状を受け入れるか。
>ハイパーリンクのアドレスの編集でどうにかなったりするでしょうか。
リンクの問題では無く対象ファイルの問題なので、出来ないと思います。(私の知る限り)
ご存知かと思いますが、2通り ただし、スライド ショーとして実行するなら、1は必須です。
1、 PowerPoint でスライド ショーを作成し、 *.ppsx (スライド ショー) で保存する
2,1 Excel の [挿入] タブ > オブジェクト > [ファイルから] タブ で *.ppsx ファイルを挿入
2,2 または、Excel の [挿入] タブ >ハイパーリンク > ファイル参照
2,1 挿入したプレゼンテーションを右クリック > Presentation オブジェクト > Show でスライド ショーを実行
2,2 または、ハイパーリンクをクリック
追記:VBAを導入すれば出来るかと思いますが、.ppsxファイルを作るより、おそらく問題があると思います。
VBAをサクサク作ってよい会社ならVBAでの実行は、さほど難しくないですね。
回答ありがとうございます。
ファイル数が多い~避けたいというのは、部署ごとにファイルを作成しているので元々のファイル数が多くそれをPPSファイルに保存しなおすのにそれなりに時間を要してしまうため避けたいという意味でした。
PowerPointの中にハイパーリンクでほかのPowerPointを入れると最初からスライドショーになるのでそんな感じでやれたらと思ったのですが、
VBAも視野に入れて検討したいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ノートパソコン サブスクの音楽はパソコンに保存されない?スライドショーの音源にできない? 3 2022/09/24 16:54
- Excel(エクセル) csvファイルをExcel形式で読み込むには 2 2023/07/03 13:09
- フリーソフト ファイル保存できるデジタルノートアプリ 3 2022/05/03 09:11
- Excel(エクセル) Excelで、社外秘(閲覧のみ)と表示され、共有者が編集出来ないのですが 4 2023/06/20 17:54
- Excel(エクセル) Excelを開くとエラーが出る 2 2022/10/03 16:13
- Google Drive グーグルドライブの共有の設定がうまくできません 1 2022/11/28 00:44
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- 画像編集・動画編集・音楽編集 inkscapeで作成した図の保存の仕方とその保存したファイルの編集の仕方 1 2022/09/22 09:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
- Excel(エクセル) 送られてきたxlsxが編集できない 8 2022/09/22 14:05
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メールでCADデータが送られまし...
-
Macで作成したファイル(Word)を...
-
何も表示されないPowerPointフ...
-
ワードの拡張子で
-
WORDファイルを開くだけで応答...
-
強制終了するExcelファイ...
-
txtファイルをExcelで開くと文...
-
Excel に貼り付けた図形が、保...
-
エクセルが勝手に開く
-
アクセスVBAで既に開いているエ...
-
EXCELを起動したとき120%の表...
-
ACCESSからexcelブックを開いて...
-
Draftsightが起動しない。
-
Wordで作成したものをUSBに保存...
-
VBによるEXCELの書き込み
-
至急!教えてください!!「Mic...
-
jtrim 1.53cが正常な動きをし...
-
office起動時に設定画面が表示...
-
複数のエクセルファイルを一つ...
-
パワーポイントのスライドショ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メールでCADデータが送られまし...
-
Macで作成したファイル(Word)を...
-
ワードの拡張子で
-
ACCESS2016でテーマが使用できない
-
何も表示されないPowerPointフ...
-
jpg画像ファイルをJTrimで開けない
-
txtファイルをExcelで開くと文...
-
msgファイルをnotesで開く
-
Wordファイルが開けません
-
Excelテンプレートが開けません
-
ワード2007でxpsファイルを読み...
-
エクセルのデータを呼び込めない
-
エクセルがいきなり強制終了→使...
-
WORDファイルを開くだけで応答...
-
Excelのハイパーリンクについて...
-
acrobat6.0 standardで音声を埋...
-
DVD-Rに書き込みするにはどうし...
-
Excelで上書きできません
-
Wordで作った文書を開きたいの...
-
ワード2000 添付ファイルが読...
おすすめ情報