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;