Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[掲載 2009年05月25日] [更新 2013年12月16日] エクセル操作フォームEx
エクセル操作フォームEx   参考コード類
改ページの設定と設定削除
動作確認等 Windows 7 U64(SP1) + Delphi XE Pro + Excel 2010







改ページの設定例 - 指定列から改行


指定列位置から、次のページとする例です。ここでは C 列から次のページとします。


図1
実行結果

リスト1
procedure TplExcelFormEx1.Button1Click(Sender: TObject);
var
  ARange : Txlf2000Range;
begin
  ARange := xlfExcelSheet.Range['C6','C6'];
  xlfExcelSheet.VPageBreaks.Add(ARange);
end;




改ページの設定例 - 指定行から改行


指定行から改ページする例です。ここでは 5 行目から次のページとします。


図2
実行結果

リスト2
procedure TplExcelFormEx1.Button2Click(Sender: TObject);
begin
  xlfExcelSheet.HPageBreaks.Add(xlfExcelSheet.Range['D5','D5']);
end;




改ページの設定例 - 指定セルから改行


指定セルから改ページする例です。ここでは現在アクティブなセルから次ページとします。


図3
実行結果

リスト3
procedure TplExcelFormEx1.Button3Click(Sender: TObject);
var
  ARange : Txlf2000Range;
begin
  //現在アクティブなセルのRangeオブジェクトを取得
  ARange := xlfExcelApp.ActiveCell;

  xlfExcelSheet.HPageBreaks.Add(ARange);
  xlfExcelSheet.VPageBreaks.Add(ARange);
end;


任意のセルをコードで指定するには、次のようにします。
このコードは C6 から改ページします。


リスト4
procedure TplExcelFormEx1.Button5Click(Sender: TObject);
var
  ARange : Txlf2000Range;
begin
  ARange := xlfExcelSheet.Range['C6','C6'];
  ARange.PageBreak := Integer(xlPageBreakManual);
end;




改ページの設定と解除のトグル


指定セルに対して、改ページを設定したり、解除するコードです。ただし、このコードは常にアクティブなセルに対してだけ有効です。したがって、実際の使用では、改ページを設定したセルを記憶しておく必要があります。


図4
実行結果例
図5
もう一度クリックすると解除

リスト5
procedure TplExcelFormEx1.Button6Click(Sender: TObject);
var
  objCmdBars : OleVariant;
begin
  xlfSetFocusExcel;
  if xlfExcelVersionNo >= 12 then begin
    objCmdBars := xlfExcelApp.CommandBars;
    try
      objCmdBars.FindControl(ID := 1588).Execute;
    except
    end;
  end;
end;




改ページの設定解除


指定セルに改ページが設定されている場合はそれを解除します。設定されていなければ何もしません。


リスト6
procedure TplExcelFormEx1.Button7Click(Sender: TObject);
var
  ARange : Txlf2000Range;
begin
  ARange := xlfExcelSheet.Range['D5','D5'];
  ARange.PageBreak := Integer(xlPageBreakNone);
end;




改ページの設定を全て解除


改ページの設定を全て解除し、デフォルトの改ページ設定に戻します。


リスト7
procedure TplExcelFormEx1.Button8Click(Sender: TObject);
var
  ARange : Txlf2000Range;
begin
  ARange := xlfExcelSheet.Cells;
  ARange.PageBreak := Integer(xlPageBreakNone);
end;


同じく改ページの設定を全て解除しますが、コマンド ID を使用する例です。


リスト8
procedure TplExcelFormEx1.Button9Click(Sender: TObject);
var
  objCmdBars : OleVariant;
begin
  if xlfExcelVersionNo >= 12 then begin
    objCmdBars := xlfExcelApp.CommandBars;
    try
      objCmdBars.FindControl(ID := 1585).Execute;
    except
    end;
  end;
end;