
前のスレッドで、めぐみんさんに、PowerpointVBAを使って、特定文字列を含むテキストボックスを全削除するPowerpointVBAコードを下記の通り教えていただきました。
教えていただいたコードにつき、2件質問&コメントさせてください。
1.Dim i As Integer '★忘れてた? ですが、経験上、カウンタを入れる変数iを定義しなくてもコードは動くので、今回もあえて定義しませんでした。今回も同様でした。PowerpointVBAの仕様は未確認ですが。。。
2.私は今までIfとEnd Ifはセットと思い込んでいたので、
If InStr(s.TextFrame.TextRange.Text, "hogehoge") > 0 Then s.delete '★変更箇所
のように、End Ifの無いIf文があることに驚きました。
どのような場合に、End Ifの無いIf文が発生すると考えればよろしいのでしょうか?
--<start of code>----
Sub delete()
Dim s As Shape 'sはshapeオブジェクトを入れる変数
Dim c As Collection 'cはコレクション
Dim start_slide As Integer 'start_slideはスライド番号を入れる変数
Dim i As Integer '★忘れてた?
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 s.Type = msoTextBox Then
If InStr(s.TextFrame.TextRange.Text, "hogehoge") > 0 Then s.delete '★変更箇所
End If
Next
'continue:
Next
'MsgBox "the process is finished."
End Sub
--<start of code>----
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) エクセル マクロ(A1:A10)までの中で一番多く出た数字をB10に表示 6 2023/04/25 17:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA エンターキーでイベントに...
-
アクセスVBAのMe!と[ ]
-
Accessのフォーム上にエクセル...
-
起動済のIEから.NET Framework...
-
認識するイベントの範囲を制限...
-
VBでExcelの表形式の様なデザイ...
-
エクセルVBAでセル番地を指定し...
-
ExcelのシートをAccessで表示し...
-
オブジェクト
-
VB6.0同一プログラム上で複数の...
-
VBAでオブジェクトを小数点で位...
-
Imageコントロールにグラフを表...
-
Excel VBAでマウスの左クリック...
-
【VBA】ワークシート上に画像フ...
-
Excel2007 でのチェックボック...
-
Bitmap.GetPixelより高速なもの
-
【エクセル】複数のTextBoxに共...
-
エクセルVBA初心者です。オブジ...
-
[C#] DataGridViewの項目名
-
DLLの共有メモリと排他処理???
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA エンターキーでイベントに...
-
アクセスVBAのMe!と[ ]
-
エクセルVBAでセル番地を指定し...
-
Excel VBAでマウスの左クリック...
-
Accessのフォーム上にエクセル...
-
日本語の文字化けを直す方法
-
文字列で小数点以下の0を削除し...
-
コードでオブジェクトを最前面に
-
Excel2007 でのチェックボック...
-
ExcelのシートをAccessで表示し...
-
【エクセルのマクロ】クリップ...
-
LoadImage関数について(VC++)
-
【エクセル】複数のTextBoxに共...
-
[C#] DataGridViewの項目名
-
現在アクティブになっているオ...
-
Webbrowserで完全にHPを表示さ...
-
サブルーチンにオブジェクト名...
-
ユーザーフォームのインポート...
-
ビデオキャプチャについて
-
代入しているのになぜnullのま...
おすすめ情報