CSV ファイルのようにノーツ文書を Excel シートに一覧出力する場合、1行目は項目名を出力し、ヘッダ行のようにすることがあります。このようなシートでは、ヘッダ行はスクロールを固定して常時表示されると使い勝手が良いですよね。
ということで今回は、Excel の『ウィンドウ枠の固定』を LotusScript から設定する方法です。
以下の例は、ワークシートの1行目を固定するプログラムです。赤字の部分が枠を固定している箇所です。
Sub Initialize Dim oXls As Variant Set oXls = CreateObject("Excel.Application") Call oXls.Workbooks.Add oXls.ActiveWindow.SplitRow = 1 oXls.ActiveWindow.FreezePanes = True oXls.Visible = True End Sub |
Application オブジェクトの ActiveWindow プロパティが新登場です。
Application.ActiveWindow プロパティ (Excel)
このプロパティは、『作業中の Excel ウィンドウ (上のウィンドウ) を表す Window オブジェクトを返します。 』だそうです。今回で言うと、直前で Add した Excel のワークブックということですね。そして、”作業中の Excel ウィンドウ”ということなので、Active というプロパティ名なのでしょう。
このプロパティの型は、Window オブジェクトです。
Microsoft Learn の記述読んでも、いまいちよくわかりませんが、ActiveSheet や ActiveCell プロパティのように今使っているオブジェクト(LotusScript 的に言うと”Current”?)があり、ウィンドウサイズを表す Height や Width プロパティがあることから、UI にまつわるオブジェクトだと判断できます。
この Window オブジェクトに『ウィンドウ枠の固定』するためのプロパティがあります。
SplitRow プロパティは固定する行番号で、その固定を有効にするのが FreezePanes プロパティです。
また、シートによっては行と列を固定した場合もあるかと思います。このようなときは、SplitColumn プロパティを使用します。
例えば、以下のサンプルでは、1行目と1列目のスクロールが固定されます。
oXls.ActiveWindow.SplitRow = 1 oXls.ActiveWindow.SplitColumn = 1 oXls.ActiveWindow.FreezePanes = True |
前回 | Notes - Excel 連携 | 次回 |
0 件のコメント:
コメントを投稿