プロが教えるわが家の防犯対策術!

VBAがブレークモードになっているため、この機能は実行できません。パワーポイントでスライドショーのの画面を全て縦書きなので2倍くらいにすると画面いっぱいくらいになります。マクロを作成し通過用の見えないボックスを作成し通過させますと上のようなメッセージが出ます。ご教授のほどお願いいたします。マクロを教えていただいたのは misatoanna さんです。URL:http://oshiete.goo.ne.jp/qa/2304312.html

A 回答 (2件)

返事が遅くなってすみません。



>「End Subが必要です。」とのメッセージが出ます。

という、コンパイルエラーの原因は、別のコードの残骸があるからです。
後、余計なものがないかも調べてみてください。

'//
''Sub Zoom() '←ここを削除します。

Sub LargeSlide() 'オリジナル名
 Dim ZmSet, ZmNow
 On Error Resume Next 'このようにします。
 ZmSet = 2# 
 ZmNow = ActivePresentation.SlideShowWindow.View.Zoom
 With ActivePresentation.SlideShowWindow
  Select Case ZmNow
   Case Is < 110   '※
    .Top = (.Height - .Height * ZmSet) / 2
    .Left = (.Width - .Width * ZmSet) / 2
    .Width = .Width * ZmSet
    .Height = .Height * ZmSet
   Case Else
    .Top = 0
    .Left = 0
    .Width = .Width / ZmSet
    .Height = .Height / ZmSet
  End Select
  On Error Goto 0
End Sub
    • good
    • 1
この回答へのお礼

Wendy02 様
成功しました!!!!!
ご親切に二度にわたりご教授下さいましてありがとうございました。
Descriptionの後にデバッグでコンパイルしましたら、End Withが必要と表示されましたので
追加しました。
実行をしましたら「このプロジェクトのマクロは無効に設定されていますとのメッセージが出ました。」
有効にするには、マクロ→セキュリティー→「中」に設定→最初はだめでしたが拡大しました。
下記が最終の構文になりました。
本当にありがとうございました。
課題としては、最初ご教授戴きました方も仰っておりましたが、ページの先頭でなくスクロールも出来ないことです。
これはこれから考えることにします。
本当にありがとうございました。

Sub LargeSlide()
Dim ZmSet, ZmNow
On Error Resume Next 'このようにします
ZmSet = 2# '←ここで倍率を指定します。
ZmNow = ActivePresentation.SlideShowWindow.View.Zoom
With ActivePresentation.SlideShowWindow
Select Case ZmNow
Case Is < 110 '※
.Top = (.Height - .Height * ZmSet) / 2
.Left = (.Width - .Width * ZmSet) / 2
.Width = .Width * ZmSet
.Height = .Height * ZmSet
Case Else
.Top = 0
.Left = 0
.Width = .Width / ZmSet
.Height = .Height / ZmSet
End Select
On Error GoTo 0
End With 'デバッグでコンパイルしたらこれが必要のメッセージが出たので追加しました。
End Sub

'このプロジェクトのマクロは無効に設定されていますとのメッセージが出ます。
'有効にするには、マクロ→セキュリティー→「中」に設定→最初はだめでしたが拡大しました。

お礼日時:2010/06/03 22:01

気になっていましたが、はっきりしません。


試してほしいのですが、

VBEditor のオプションの
[全般]のエラートラップ
「エラー発生時に中断」 というモードにチェックが入っているのではないでしょうか。

[エラー処理対象外のエラーで中断]にしているか、確認してください。

そして、変数の宣言の後の行に、
On Error Resume Next

End Sub の行の手前で、On Error Goto 0
としたら、通ると思います。

p.s.misatoanna さんは、ここ最近は、現れませんね。
    • good
    • 0
この回答へのお礼

ご教授有難う御座います。
「エラー処理対象外のエラーで中断」にはなっていました。
デバッグ→コンパイルをしますと→「コンパイルエラー」「End Subが必要です。
とのメッセージが出ます。
一度上手くいったことがあるのですが、その時は記述文に黄色の塗り潰しが標示され、
左の枠外に矢印がありました。
これをドラッグして移動しようとしますと禁止マークが顕れ移動できませんでした。
構文は下記です。
Sub Zoom()
Sub LargeSlide()
Dim ZmSet, ZmNow
ZmSet = 2# '←ここで倍率を指定します。
ZmNow = ActivePresentation.SlideShowWindow.View.Zoom
With ActivePresentation.SlideShowWindow
Select Case ZmNow
Case Is < 110 '※
.Top = (.Height - .Height * ZmSet) / 2
.Left = (.Width - .Width * ZmSet) / 2
.Width = .Width * ZmSet
.Height = .Height * ZmSet
Case Else
.Top = 0
.Left = 0
.Width = .Width / ZmSet
.Height = .Height / ZmSet
End Select
End Sub
変数の後の行とは何処をでしょうか。
あるいはマークが指定の場所に記入されている場合別の問題でしょうか。
ご親切に感謝しております。
またお気付きのことが御座いましたらご教授の程お願い致します。
有難う御座いました。

お礼日時:2010/06/01 16:36

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

このQ&Aを見た人はこんなQ&Aも見ています