• ベストアンサー

パワポ vba 全てのスライドをループする

エクセルなら 全てのシートをループして作業する場合は For Each s In Worksheets Next でできますが、 パワポで全てのスライドをループして 各スライドで作業したい場合は、 どのようなコードになるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

具体的にどのような処理をされるのかわかりませんが、次のような記述になります。 For i = 1 To ActivePresentation.Slides.Count   With ActivePresentation.Slides(i)     ここに作業内容   End With Next または For Each sld In ActivePresentation.Slides   With sld     ここに作業内容   End With Next

VLHTQXGWRCDFX
質問者

お礼

どうもありがとうございました。

関連するQ&A

  • 一回のループで次のオブジェクトの値も同時に取得する

    一回のループで次のオブジェクトの値も同時に取得するにはどのようなコードを書けばよいですか? 例えば、 ブックにシートが Sheet1 Sheet2 Sheet3 あり、 Sub Sample1() Dim s As Worksheet For Each s In Worksheets Debug.Print s.Name Next End Sub のように、全てのシート名を取得する場合、 Sheet1とSheet2を1回のループで同時に取得する方法はありますか? Sub Sample1() Dim s As Worksheet For Each s In Worksheets Debug.Print s.Name   Debug.Print s+1.Name Next End Sub みたいな方法があるのか知りたいです。 よろしくお願いします。

  • 右からループするにはどうすればいいですか?

    Sub test() For Each s In Worksheets Debug.Print s.Name Next End Sub これでシート名を取得する際は左から取得されますが 右からループするにはどうすればいいですか?

  • スライドのスライド番号を取得したいのですがVBAで

    パワポのVBAについて教えてください。 1あああ 2いいい 3ううう のようにした時に、 「ううう」のスライドのスライド番号を取得したいのですがVBAで可能でしょうか? そもそも 全てのスライドをFor Eachでループさせて ブレースホルダに「ううう」が入力されてるかどうかを検索する方法がわかりません。 ご回答よろしくお願いします。

  • VBAですべてのワークシートを処理したい

    ブック内の全ワークシートに対して同じ処理をするために、 For each ワークシート in Worksheets ~処理~ Next ワークシート を使ってみたのですが、その時にアクティブになっているシートしか処理されません。たとえば次のようなシンプルなコードでも、同様です。何が抜けているのでしょうか。 Sub allworksheets() Dim WS As Worksheet For Each WS In Worksheets Range("a1") = "123" Next WS End Sub マクロの勉強を始めたばかりで、基本的なことでつまづいてます。よろしくお願い致します。

  • 任意でsの値にシート名を入れることは可能でしょうか

    Sub test() Dim s As Worksheet For Each s In Worksheets Next End Sub このようなシート名を左からループする際に、任意でsの値にシート名を入れることは可能でしょうか? 例えば、 s="シート3" などです。

  • エクセルVBAでFor each文

    下記のようなコードを書きたいのですが「オブジェクトが必要です」というエラーが 出力されてしまいできないようです。何か代替案はありますでしょうか。 --- dim ws as worksheet with thisworkbook for each ws in array(.worksheets(1),.worksheets(2),.worksheets(3)) with ws 'ここに処理を書く end with next ws end with --- ちなみにこのbookにある全てワークシートで処理を回したいわけではなく 特定のシートのみで処理をしたいです。 エクセル2003です。 よろしくお願いします。

  • VBAでの作業グループ全体の操作

    こんにちは、2度目の投稿です。 エクセル複数シートを作業グループ化してセルに値を入力したり色をつけたりすると、作業グループ全体に反映する機能があると思うのですが、これをVBAで記述したいと思っています。 調べると、作業グループで選択したシートはActiveWindow.SelectedSheetsに格納されるとあったので、例えば行を追加する場合、 For Each s In ActiveWindow.SelectedSheets s.Selection.EntireRow.Insert Next s で実行されるかと思いきや・・・同じシートに作業グループのシート数だけ行が増えたのです(・・;) セルの色を付けたい場合も、 For Each s In ActiveWindow.SelectedSheets   s.Range("A2").Interior.Color = RGB(255, 255, 0)   Next s これだと1シートにしか色がつかなかったり、インディックス範囲のエラーです・・・┐('~`;)┌ SelectedSheetsというのはコレクションで、Rangeはオブジェクトだから、、、えっと、、、と混乱してきてしまいました。 どのように記述すればいいのでしょうか? よろしくお願いします。

  • VBA。開いているテキストファイルを検索

    エクセル2010.VBAで 開いているテキストファイルが複数あるとして、 それらの中に、 任意のテキストファイル名が含まれているかどうかを 調べるにはどうしたらいいですか? たとえば、エクセルワークシートなら   For Each s In ActiveWorkbook.Worksheets という感じで網羅的に調べられますが、 テキストファイルの場合はどうしたらいいのでしょうか?

  • For Each でシートのループ

    簡潔に質問する為に以下のマクロを見て頂きたいのですが、 この場合sheet1,sheet2,sheet3のそれぞれの(1,1)に2が発生せず 現在目でみているシートにのみ有効なのですが、全シートに有効に するには何が足りないのでしょうか Sub aaa() Dim ws As Worksheet For Each ws In Worksheets  Cells(1,1)=2 Next End Sub

  • Excel VBA; 複数のループ処理

    ↓のようなコードがあります。 Dim i As Long, MaxRow1 As Long, MaxRow2 As Long MaxRow1 = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row MaxRow2 = Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To MaxRow1 Worksheets("Sheet1").Cells(i, 1).Value = i . Next i For i = 1 To MaxRow2 Worksheets("Sheet2").Cells(i, 1).Value = i . Next i これらを最大行の多いシートに合わせて、パフォーマンスを良くしたいと思います。 同様の処理をシート1、シート2で実施しているので纏めて記述したいです。 シート1、シート2に対する処理をサブルーチンにする方法しかありませんか? どなたかお願いします。 If MaxRow1 >= MaxRow2 Then For i = 1 To MaxRow1 Else For i = 1 To MaxRow2 End If Worksheets("Sheet1").Cells(i, 1).Value = i Worksheets("Sheet2").Cells(i, 1).Value = i . Next i

専門家に質問してみよう