初めての店舗開業を成功させよう>>

こんばんは。
EXCEL VBAでひとつのファイルの中のすべてのシートの余白とA4横サイズに統一したいのです。
マクロの記録をとると

With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.393700787401575)
.RightMargin = Application.InchesToPoints(0.393700787401575)
.TopMargin = Application.InchesToPoints(0.393700787401575)
.BottomMargin = Application.InchesToPoints(0.393700787401575)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
End With
End Sub
このように記述されますが、どのように加工したらよろしいでしょうか?
教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

Sub aaa()


Dim i As Integer

For i = 1 To Worksheets.Count
  With Worksheets(i).PageSetup
   .Orientation = xlLandscape
   .LeftMargin = Application.InchesToPoints(0.393700787401575)
   .RightMargin = Application.InchesToPoints(0.393700787401575)
   .TopMargin = Application.InchesToPoints(0.393700787401575)
   .BottomMargin = Application.InchesToPoints(0.393700787401575)
  End With
Next i

End Sub


とか。
数値は適当に。
また、以下のURLも参照ください。
http://homepage1.nifty.com/tabotabo/insat/excelp …
    • good
    • 0
この回答へのお礼

できました。
ありがとうございました。

お礼日時:2009/07/04 09:58

これ忘れました。


With~End With の中に追加してください。

.PaperSize = xlPaperA4
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QEXCELで複数のシートを同時に印刷範囲の設定する方法【EXCEL2000】

EXCEL2000を使っています。
複数のワークシート(全て同じ範囲)に印刷範囲を設定するにはワークシート毎に(ツール→印刷範囲→印刷範囲の設定)の操作をする方法しかないのでしょうか?
ワークシートをグループ化した状態にして行うと印刷範囲の設定メニューがグレーになって操作が出来ません。
どなかたお教え下さい。

Aベストアンサー

>複数のワークシート(全て同じ範囲)に印刷範囲を設定するには
>ワークシート毎に(ツール→印刷範囲→印刷範囲の設定)の操作をする方法しかないのでしょうか?
結論としてはyesです。

一旦、該当の全シートを選択して[作業グループ]としてから印刷範囲に設定したい範囲を『選択』します。
(これで全シートの選択範囲が同じアドレスになります)
[作業グループ]を解除して、各シート表示させながら[印刷範囲の設定]をします。
ツールバーのユーザー設定で、[印刷範囲の設定]のアイコンがありますから、
これを追加で表示させておけば1クリックです。

それでも面倒な場合はマクロになります。
設定したいシートを選択して

Sub try()
  Dim ws As Worksheet

  For Each ws In ActiveWindow.SelectedSheets
    Sheets(1).Select
    ws.PageSetup.PrintArea = "$A$1:$B$2"
  Next
End Sub

こんな感じ。

Book内の全シートでよければもうちょっと簡単です。
Sub try2()
  Dim ws As Worksheet
  
  For Each ws In Worksheets
    ws.PageSetup.PrintArea = "$A$1:$B$2"
  Next
End Sub

>複数のワークシート(全て同じ範囲)に印刷範囲を設定するには
>ワークシート毎に(ツール→印刷範囲→印刷範囲の設定)の操作をする方法しかないのでしょうか?
結論としてはyesです。

一旦、該当の全シートを選択して[作業グループ]としてから印刷範囲に設定したい範囲を『選択』します。
(これで全シートの選択範囲が同じアドレスになります)
[作業グループ]を解除して、各シート表示させながら[印刷範囲の設定]をします。
ツールバーのユーザー設定で、[印刷範囲の設定]のアイコンがありますから、
...続きを読む

QVBAであるマクロを全てのシートに対して流したい

お世話になります。

現在シート単位に実行するマクロ1があります。

これを、全てのシートに対して、マクロ1を実行したいのですが、どのようにすればよいでしょうか?
※現在は、シートが終わる毎に手動でマクロ1を実行して、それが終われば次のシートへという形です。

大変お手数ですが、何卒よろしくお願いします。

Aベストアンサー

全てのシートに同じマクロ、ということは
そのマクロはアクティブシートに対して処理してるはずですから
該当シートをアクティブにしながら実行されなければいけないので
以下のようになります。

'-------------------------------------------
Sub Test()
Application.ScreenUpdating = False
 Dim Sht As Worksheet
   For Each Sht In Worksheets
     Sht.Select
     Call マクロ1
   Next Sht
Application.ScreenUpdating = True
End Sub
'--------------------------------------

全てのシートをアクティブにしながら実行しますので画面がちらつきます。
それを抑えるのが、ScreenUpdatingメソッドです。

違いを見る為に最初は、それを抜いて実行してみてください。

 

全てのシートに同じマクロ、ということは
そのマクロはアクティブシートに対して処理してるはずですから
該当シートをアクティブにしながら実行されなければいけないので
以下のようになります。

'-------------------------------------------
Sub Test()
Application.ScreenUpdating = False
 Dim Sht As Worksheet
   For Each Sht In Worksheets
     Sht.Select
     Call マクロ1
   Next Sht
Application.ScreenUpdating = True
End Sub
'------------------------------...続きを読む

QExcel シートのコピーの際、ページ設定が保持されない

職場でExcel2007を使っています。

あるファイルのシートをコピーして、別のファイルに貼り付けたのですが、元のファイルに設定してあったページ設定が反映されません。
拡大/縮小印刷100%で1ページに印刷されるはずが、1列はみ出してしまいます。
元のページ設定を保持したまま別のシートにコピーは出来ないでしょうか?それとも何か不具合が出ているのでしょうか。
何か解決法がありましたら教えてください。

Aベストアンサー

補足がないので憶測回答になってしまいますが…。

・同一のPC・プリンタで、
・コピー&ペーストではなく[シートの移動またはコピー]を使用
したにも関わらず印刷範囲が変動するということであれば、
[ページ設定]ではなく[スタイル]設定の違いによる現象かもしれません。

これはExcelのバグ(MS的表現で言うところの"仕様")だと思うのですが、

 >>スタイル設定の異なるブック間でシートをコピーすると印刷範囲に影響が出ます<<

●再現手順
1.新規ブックを2つ作成する(Book1,Book2とする)
2.Book1の[標準]スタイルのフォントサイズを1ポイント大きくする
3.Book1_Sheet1の適当な列(例えばK列)が1ページ目に"ギリギリ入る"よう列幅を調整する
4.Book1_Sheet1をBook2にコピーする
⇒同じ設定・同じ列幅にも関わらず、コピーしたシートのK列は1ページ目に収まらない。
(Excel2000,2002,2003で挙動確認)

コピー元とコピー先のブックのスタイル設定を一致させれば、
コピー元ブックと同様の設定で同じ印刷結果を得ることができますが、
スタイル設定を変更した時点でどうせ列幅が変わってしまいますし、
何よりブックの他のシートにも影響が出てしまいます。
結局、その都度列幅等の設定を再調整するのが現実的かと思われます。

実は私自身この件で随分苦労しました。
↓などもおそらく同様のトラブルだと思います。
http://www2.moug.net/bbs/exopr/20070911000024.htm
既定のフォントサイズを10Pや9Pにしている人も少なくないので、
結構ありそうなトラブルだと思うのですが、
検索しても何故かあまりHITしないようです。

以上ご参考まで。

なお、当方Excel2007環境がありませんので、上記再現手順を含め、
具体的な操作方法についてはわかりかねます。
ご容赦ください。

補足がないので憶測回答になってしまいますが…。

・同一のPC・プリンタで、
・コピー&ペーストではなく[シートの移動またはコピー]を使用
したにも関わらず印刷範囲が変動するということであれば、
[ページ設定]ではなく[スタイル]設定の違いによる現象かもしれません。

これはExcelのバグ(MS的表現で言うところの"仕様")だと思うのですが、

 >>スタイル設定の異なるブック間でシートをコピーすると印刷範囲に影響が出ます<<

●再現手順
1.新規ブックを2つ作成する(Book1,Book2とする)
...続きを読む

QEXCEL VBA で特定の文字に色をつけるマクロを書きたいのですが

コードはどのように書けばよいのでしょうか?

(1)そのようなコードを持っていらっしゃったらいただけないでしょうか?

(2)または、参考になるページがありましたら教えていただけないでしょうか?

現在勉強を始めたところですが、よろしくお願いいたします。

Aベストアンサー

セルの文字列の中に,
たとえば
aaaeeessseee
ssddd
dfg
weeeff
のセルの中の
eeeに赤色文字にする。
セル範囲Range("A1:C6")を対象にしてます。
ーーーー
Sub test01()
Dim cl As Range
For Each cl In Range("a1:c6")
r = InStr(cl, "eee")
If r <> 0 Then
cl.Characters(r, 3).Font.Color = vbRed
End If
Next
End Sub


人気Q&Aランキング

おすすめ情報