アプリ版:「スタンプのみでお礼する」機能のリリースについて

もしお分かりの方がいらっしゃいましたら、お知恵を拝借出来ればと
思います。

現在あるフォルダに100個程のpptファイルが保存されています。
各ファイル名の先頭には00~99の連番が付いています。
これら複数のpptファイルの各1ページ目のみを100枚結合して
新しいpptファイルを一つ作成するVBAを教えていただきたいのです。

結合するファイルを選択するダイヤログボックスは出なくてもよいです。

同種のVBAはExcelのものは調べられましたが、どうしてもPowerPoint
のVBAがわからず、大変困っております。
なお、OSはWindowsXP、Officeは2000を使用しています。

よろしくお願いします。

A 回答 (3件)

> ちなみに、結合するファイルをダイヤログで選択したい場合、Excelですと


> getopenfilenameを使うと思いますが、PowerPointはこれに対応していないので
> しょうか??

対応してないようです。excelアプリケーションを呼び出して使ってみては?


Sub OPEN_FILE()
Set xlsAppDialog = CreateObject("Excel.application")
xlsAppDialog.Application.GetOpenFilename
Set xlsAppDialog = Nothing
End Sub
    • good
    • 0

C:\My Documents\MyPresentation


内にあるすべてのパワーポイントファイルのスライドの1番目を統合するマクロです。ファイルの開く順番は考慮していませんが、ファイル名の頭が連番なんで大丈夫かと思います。


Sub S_COMBINATION()

Dim openFilePath As String
Dim fn As String

openFilePath = "C:\My Documents\MyPresentation"
With Application.FileSearch
 .NewSearch
 .LookIn = openFilePath
 .FileType = msoFileTypePowerPointPresentations
 If .Execute() > 0 Then
   For i = 1 To .FoundFiles.Count
    fn = .FoundFiles(i)
    Presentations.Open fn
    Presentations(fn).Slides(1).Copy
    Presentations(fn).Close
    ActiveWindow.View.Paste
  Next i
 End If
End With

End Sub

Win2000+PowerPoint2000で動作確認

この回答への補足

ご回答ありがとうございます。

早速試してみましたところ、無事ファイルの結合が
出来ました!ありがとうございます!

なお補足ではございますが、お教えいただいたマクロを仕込む
pptファイルと、結合ファイルを別にしたいと考えております。
処理の流れは以下のようになると思います。

1.マクロを仕込んだ実行用ファイルを結合ファイル群が保存されている
 ディレクトリにコピー

2.実行用ファイルを開きマクロを実行

3.マクロによりまず名前順が一番若いファイル(仮に00.pptとします)を開く

4.次に01.pptが開かれ1ページ目コピー、00.pptの最後に貼り付け
 (続けて01.pptを閉じる なお01.pptのvisible=falseです)

5.処理が最後のファイルまで終わったら「名前をつけて保存」を出す

以上のような流れになります。
ちなみに、結合するファイルをダイヤログで選択したい場合、Excelですと
getopenfilenameを使うと思いますが、PowerPointはこれに対応していないので
しょうか??

お手数ですが、是非ご教授願います。
よろしくお願いします。

補足日時:2005/03/24 09:19
    • good
    • 0

大雑把に、以下のような手順でVBAを作成します。


・あるファイルに対して処理を行う手順をVBAとして記録。
・任意のファイルに処理を行うように変更。
・上記処理を連続で呼び出すVBAを作成。


No.912046 質問:PowerPoint 2002でファイル名をフッターに印刷する方法
http://oshiete1.goo.ne.jp/kotaeru.php3?q=912046


1) 自動処理.pptを新規作成。
2) マクロの記録開始。
3) 01ファイルを開く、1ページ目選択、コピー、閉じる。
4) 貼り付け。
5) 記録終了。
6) VBE起動。
7) c:\my documents\…を読み込む処理を、引数で指定できるよう変更。
8) 全ファイルに対して上記処理の呼び出しを追加。

のような感じです。

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=912046
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ファイルの数や名前が変動する場合でも対応出来るように調べてみます。ありがとうございました。

お礼日時:2005/03/24 09:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!