Powerpointファイルを開いて、
ホーム-配置-オブジェクトの選択と表示 でスライドのShapeオブジェクト一覧が表示されます。(添付画像参照)。このスライドから黄色い蛍光ペンで塗った、”コンテンツプレースホルダー2”の
Shapeオブジェクトを削除しようとして、下記のPowerpointVBAを実行しましたが、何も削除されません。コードをどう直せば動きますか? わかる方教えてください。
--<start of code>----
Sub delete()
Dim s As Shape 'sはshapeオブジェクトを入れる変数
Dim c As Collection 'cはコレクション
Dim start_slide As Integer 'start_slideはスライド番号1を入れる定数
Dim i As Integer 'iはスライド番号を入れる変数
start_slide = 1
For i = start_slide To ActivePresentation.Slides.Count
'If i = 254 Then
' GoTo continue
'End If
Set c = New Collection
For Each s In ActivePresentation.Slides(i).Shapes '変数sにアクティブスライド番号のすべてのshapeオブジェクトを入れる。
c.Add s
Next
For Each s In c
If InStr(s.Title, "コンテンツ") > 0 Then s.delete '★ここが重要!
Next
'continue:
Next
'MsgBox "the process is finished."
End Sub
--<end of code>----

No.2ベストアンサー
- 回答日時:
>If InStr(s.Title, "コンテンツ") > 0 Then s.delete '★ここが重要!
の「Title」を「Name」にするとどうでしょうか。
If InStr(s.Name, "コンテンツ") > 0 Then s.delete '★ここが重要!
If InStr(s.Name, "コンテンツ") > 0 Then s.delete '★ここが重要!
でうまく行きました。ありがとうございます。
No.1
- 回答日時:
>”コンテンツプレースホルダー2”のShapeオブジェクトを削除しようとして
>For Each s In ActivePresentation.Slides(i).Shapes '変数sにアクティブスライド番号のすべてのshapeオブジェクトを入れる。
>If InStr(s.Title, "コンテンツ") > 0 Then s.delete '★ここが重要!
全角表示を取得する方法は不明ですけど、とりあえずプレスホルダー名を取得しその結果としては。
Dim sl As Slide
Dim sh As Shape
For Each sl In ActivePresentation.Slides
For Each sh In sl.Shapes.Placeholders
Debug.Print sh.Name, ": " & InStr(sh.Name, "Placeholder 2")
Next
Next
結果:
Title 1 : 0
Subtitle 2 : 0
Title 1 : 0
Content Placeholder 2 : 9
Content Placeholder 3 : 0
みたいになりますね。
多分コントロール名だと思いますけど、半角文字が使われているようです。
と、ほぼPowerPointを使わないのでその先は良くわかりません。
WordVBAやっている方ならいけるんじゃないのかな?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
隣の枝がはみ出してきたら切ってもいい?最もやってはいけないことは?
「隣の木が越境してきて困るが、勝手に切ってはいけないと聞くし…」そう思っている方も多いだろう。実は、2023年4月1日に民法が改正され、この「越境枝」のルールが大きく変わった。 教えて!gooでも「境界から出て...
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスVBAのMe!と[ ]
-
ExcelのシートをAccessで表示し...
-
GDIオブジェクトが増える……
-
VBA エンターキーでイベントに...
-
現在アクティブになっているオ...
-
【エクセル】複数のTextBoxに共...
-
VBでExcelの表形式の様なデザイ...
-
Excel VBAでマウスの左クリック...
-
エクセルで、日付を入力すると...
-
「ご処理進めて頂きますようお...
-
CloseとDisposeの違い
-
UPS警告音を止めたい
-
銀行の窓口処理の件で知ってる...
-
エクセルVBAで、MsgBox やInput...
-
EXCEL VBA マクロ 実行する度に...
-
「PC Helpsoft Driver Updated...
-
月度は何て読みますか?
-
VBAでループ内で使う変数名を可...
-
Googleフォーム・複数人の申し...
-
リョウ・・・量?料?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスVBAのMe!と[ ]
-
VBA エンターキーでイベントに...
-
ChexBox1等の「1」を変数にで...
-
Excel VBAでマウスの左クリック...
-
【エクセルのマクロ】クリップ...
-
Accessのフォーム上にエクセル...
-
文字列で小数点以下の0を削除し...
-
日本語の文字化けを直す方法
-
【エクセル】複数のTextBoxに共...
-
エクセルVBAでセル番地を指定し...
-
ExcelのシートをAccessで表示し...
-
サブルーチンにオブジェクト名...
-
Excel2007 でのチェックボック...
-
ユーザーフォームのインポート...
-
コードでオブジェクトを最前面に
-
現在アクティブになっているオ...
-
クリスタルレポートのプレビュ...
-
Bitmap.GetPixelより高速なもの
-
vba ユーザーフォームのテキス...
-
Imageコントロールにグラフを表...
おすすめ情報








