本ページは、以下のサイトを参考にしています。
SAS_help@wiki
SASmemo
目次
1.サンプルシート
サンプルとして、Excelファイルを開くで開いた以下ファイルのシート「都道府県」に対して展開してみます。
2.展開例
セル削除
行削除
行削除の展開例です。
%dde_cell_format(file=都道府県.xlsx, sheet=都道府県, cell=r5:r9, type=edit.delete(2));
指定した行が削除されています。
列削除(失敗例)
列削除の失敗例です。
%dde_cell_format(cell=c3, type=edit.delete(2));
指定していない列まで削除されています。
これは3~5列にまたがってセル結合されているためです。
DDEはセル結合と相性が悪いのでご注意ください。
範囲削除
セルを範囲削除してみます。
%dde_cell_format(cell=r5c2:r9c3, type=edit.delete(2));
以下のように、指定した範囲を削除し、下方にあったセルが上詰めされてます。
文字列書式の操作
文字列にする
文字列にする展開例です。
%dde_cell_format(cell=r2c6:r10c8, type=format.number("@"));
指定したセルが「文字列」になっています。
フォントを変える
フォントを変えるには、以下のコマンドを使用します。
format.font("<フォント>",<サイズ>,<太字>,<イタリック>,<下線>,<打ち消し線>,<色>) <フォント> フォントを指定する <サイズ> 文字サイズを指定する <太字>,<イタリック>,<下線>,<打ち消し線> true or false <色> 1~56で指定する カラー番号参考サイト
フォントを変える展開例です。
%dde_cell_format(cell=r3c2:r3c4, type=format.font("MS 明朝",20,,,,,3));
指定したフォント、サイズ、色に変わっています。
罫線を引く
罫線を引くには、以下のコマンドを使用します。
border(<外枠>,<左>,<右>,<上>,<下>,<網掛け>,<外枠色>,<左色>,<右色>,<上色>,<下色>) <外枠>,<左>,<右>,<上>,<下> 0:なし 1:実線 2:太線 3:破線 4:点線 5:極太線 6:二重線 7:細線 <網掛け> true or false <外枠色>,<左色>,<右色>,<上色>,<下色> 1~56で指定する カラー番号参考サイト
セル範囲を指定して、罫線を引いてみます。
%dde_cell_format(cell=r2c2:r10c4, type=border(,1,2,6,4,false,,3,5,10,26));
この展開例では、セルを範囲指定して、<左>,<右>,<上>,<下>のすべてに罫線を引いているので、ヘンテコな仕上がりになっています。
目的に応じて、borderの引数を変えてみて下さい。
セル高さ・幅調整
セル高さ・幅調整では、以下のコマンドを使用します。
row.height(またはcolumn.width)(<高さ(幅)>,<範囲>,<標準>,<種類>) <高さ(幅)> サイズを指定する <範囲> R1C1形式で指定 ※%dde_cell_format(file=, sheet=, cell=, type=)の引数cellを指定していれば、省略しても問題ない <標準> 標準の高さ(標準の幅) にする true or false <種類> 1:非表示 2:再表示 3:最適値
行高さ調整
「row.height」を指定して、行高さを調整してみます。
%dde_cell_format(cell=r3, type=row.height(40));
以下のように、行高さが40に変わりました。
列幅調整
「column.width」を指定して、列幅を調整してみます。
%dde_cell_format(cell=c2:c4, type=column.width(25));
以下のように、列幅が25に変わりました。
行高さ・列幅自動調整
つぶれた文字を、列幅自動調整してみます。
%dde_cell_format(cell=c2:c4, type=column.width(,,,3));
以下のように、各列が必要最低限の列幅に調整されています。
3. 参考プログラム
以下は、参考プログラムになります。
右上のコピーボタンを押せば、プログラム全体をコピーできます。
%macro dde_cell_format(file=, sheet=, cell=, type=);
%put --------------------------------------------------;
%put dde_cell_format; /*セルの書式設定をする*/
%put &=file; /*対象ファイルを指定(省略した場合はアクティブファイルが対象となる)*/
%put &=sheet; /*対象シートを指定(省略した場合はアクティブシートが対象となる)*/
%put &=cell; /*結合するセルを指定(R1C1形式のみ指定可、例r3c3:r4c4)*/
%put &=type; /*書式設定を指定する*/
%put --------------------------------------------------;
filename xlssys dde "excel|system";
data _null_;
file xlssys;
put '[error(false)]';
%if %length(%superq(file))>0 %then %do;
put "[activate(""%superq(file)"")]";
%end;
%if %length(%superq(sheet))>0 %then %do;
put "[workbook.activate(""%superq(sheet)"")]";
%end;
put "[select(""&cell."")]";
put "[%superq(type)]";
run;
filename xlssys clear;
%mend dde_cell_format;