「AccessVBA Excelページ設定 横向き Pagesetup」
といった検索キーワードでアクセスがありました。
Excelでは、[ページ設定]ダイアログボックス-[ページ]タブの[印刷の向き]欄に「横」オプションがあります。
この設定をAccess VBAから行うにはどのようなコードを書けばいいのか調べていらしたのでしょう。
Excelシートのページ設定を横向きにするサンプルプロシージャ
横向きに設定したいExcelシートがアクティブな状態で、以下のSubプロシージャを実行してください。
On Error GoTo ErrHandl
Const xlLandscape = 2
Dim xl_app As Object
Set xl_app = GetObject(Class:="Excel.Application")
Dim xl_sht As Object
Set xl_sht = xl_app.ActiveSheet
xl_sht.PageSetup.Orientation = xlLandscape
MsgBox "アクティブなExcelシートのページ設定を横向きにしました。"
Set xl_sht = Nothing
Set xl_app = Nothing
ErrHandl:
Select Case Err.Number
Case 429
MsgBox "Excelが起動していないようです。"
Case 91
MsgBox "Excelファイルが開かれていないようです。"
Case Else
MsgBox Err.Description & vbCrLf & Err.Number
End Select
Err.Clear
End Sub
正常に実行できると
「アクティブなExcelシートのページ設定を横向きにしました。」
とメッセージが表示されます。
サンプルプロシージャで行っている処理
定数xlLandscapeの用意
ページの向きを取得/設定する、ExcelのPageSetup.Orientationプロパティには、
Excel.XlPageOrientation列挙型に定義されている定数を指定できます。
ここでは、Excelへの参照設定が行われていない環境を想定して、この横向きを指定する定数xlLandscapeをコード内で準備しています。
Const xlLandscape = 2
Excelへの参照設定が行われている環境であれば、この行は不要です。
VBA.GetObjectで起動済Excel.Applicationの取得
次に、VBAのGetObject関数を使って、起動しているExcel.Applicationへの参照を取得しています。
Dim xl_app As Object Set xl_app = GetObject(Class:="Excel.Application")
この後の、変数xl_appを経由した処理は、実質的にExcel VBAです。
アクティブなExcelシートの取得
つづいて、Excel.Application.ActiveSheetプロパティを使って
アクティブなシートを表すWorksheetオブジェクトを取得して、変数xl_shtに代入しています。
Dim xl_sht As Object Set xl_sht = xl_app.ActiveSheet
横向きに設定
そして、Worksheet.PageSetupプロパティでExcel.PageSetupオブジェクトを取得して、
Excel.PageSetup.Orientationプロパティに
xl_sht.PageSetup.Orientation = xlLandscape
定数xlLandscapeを指定することで、横向きにしています。
Home » Access VBA » Access VBAでExcelシートのページ設定を横向きに