Home » Access VBA » Access VBAでExcelシートのページ設定を横向きに

Access VBAでExcelシートのページ設定を横向きに

動作検証バージョン:Windows 11 Home + 64bit Access & Excel バージョン 2403(ビルド17425.20000クイック実行)ベータチャネル

「AccessVBA Excelページ設定 横向き Pagesetup」
といった検索キーワードでアクセスがありました。

Excelでは、[ページ設定]ダイアログボックス-[ページ]タブの[印刷の向き]欄に「横」オプションがあります。

この設定をAccess VBAから行うにはどのようなコードを書けばいいのか調べていらしたのでしょう。

[スポンサードリンク]

Excelシートのページ設定を横向きにするサンプルプロシージャ

横向きに設定したいExcelシートがアクティブな状態で、以下のSubプロシージャを実行してください。

Sub 開いているExcelシートのページ設定を横向きに()
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

Exit Sub
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シートのページ設定を横向きに

「Access VBA」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.