ヘッダー左上にシート名を追加するプログラムですが、 下記コードですと、シート名が追加されます。 [code] With ActiveSheet .PageSetup.LeftHeader = "&A" End With [code] 下記のように .PageSetup・・・をActiveSheetに繋げたコードですと 実行してもシート名が追加されません(エラーも表示されません) [code] With ActiveSheet.PageSetup.LeftHeader = "&A" End With [code] 何度か試してみましたが、実行結果が変わります。 どこかコードが間違っていますでしょうか? officeのバージョンは2019です。
2020/11/15 18:59
ナオさんのコメント
(コメントID: 6939)
すいませんコードを再アップします。
Sub Macro4()
With ActiveSheet
.PageSetup.LeftHeader = "&A"
End With
End Sub
Sub Macro5()
With ActiveSheet.PageSetup.LeftHeader = "&A"
End With
End Sub
よろしくお願いします。
2020/11/15 19:09
小川 慶一さんのコメント
(コメントID: 6936)
ナオさん:
おはようございます。
Macro5の代わりに、以下なら動作します。
Sub Macro6()
ActiveSheet.PageSetup.LeftHeader = "&A"
End Sub
受講生さんの投稿
(投稿ID: 4927)
下記コードですと、シート名が追加されます。
[code]
With ActiveSheet
.PageSetup.LeftHeader = "&A"
End With
[code]
下記のように .PageSetup・・・をActiveSheetに繋げたコードですと
実行してもシート名が追加されません(エラーも表示されません)
[code]
With ActiveSheet.PageSetup.LeftHeader = "&A"
End With
[code]
何度か試してみましたが、実行結果が変わります。
どこかコードが間違っていますでしょうか?
officeのバージョンは2019です。
ナオさんのコメント
(コメントID: 6939)
よろしくお願いします。
小川 慶一さんのコメント
(コメントID: 6936)
おはようございます。
Macro5の代わりに、以下なら動作します。
自動記録について解説した章で解説したとおり、with 構文は、以下の構文で、操作対象のオブジェクトを指定するものです。
以下では、[Object] の部分が、 ActiveSheet ですね。これはOK。
以下では、[Object] の部分が、ActiveSheet.PageSetup.LeftHeader = "&A" ですね。これはNG。
(本当はこういうのは構文エラーとして実行時エラーになってほしいものですが...。スルーされてしまってますね)
解説としては、これでどうでしょうか。
受講生さんのコメント
(コメントID: 6940)
ご回答ありがとうございます。
With ActiveSheetに
.PageSetup.LeftHeader を繋げる事ばかりに注意がいってましたが、
With ~ End with はそもそも[Object]を省略するために使う事を忘れていました。
解説ありがとうございます。勉強になりました。
小川 慶一さんのコメント
(コメントID: 6942)
おはようございます。
解決されたようでよかったです。
慣れないうちはいろいろありますね。
ひきつづきよろしくお願いいたします (^^