非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

C#からExcelファイルのセルの書式や罫線を変更する方法

   

前回、Microsoft.Office.Interop.Excelライブラリを使用してC#からExcelファイルを読み書きする方法を紹介しました。

 

今回はセルの書式の変更や罫線を入れる方法を紹介します。

※Microsoft.Office.Interop.Excelライブラリのダウンロード・インストール方法は前回記事を参照ください。

[ad#top-1]

今回のサンプルプログラム

今回のサンプルプログラムの紹介です。前回のプログラムをベースにしており、そこに書式設定のコードを追加したものになります。

フォームの「Excelファイル読み込み」ボタンを押すと、指定したExcelファイルが現れ、「A1」セルの値がメッセージボックスに表示されます。そのままメッセージボックスの「OK」ボタンを押しましょう。

 

すると、「A1」セルの値が変わることと、「A1:C5」セルに罫線が引かれます。(A1セルへの値がはみ出るので##と表示されてしまう)

 

メッセージボックスの「OK」ボタンを押すと、Excelファイルが閉じます。

Excelファイルを改めて開いてみると、A1セルに時刻が入っていることと、書式が変わっている点がわかります。

 

今回の追加点

前回のソースコードに以下を追加しています。前回は適当な文字列を入力しましたが、今回は時間データを書式指定で入力する点と、文字サイズやフォントなどを設定しています。

Excel.Range aRange = xlApp.get_Range("A1",Type.Missing) as Excel.Range;
if ( aRange != null ){
  MessageBox.Show(aRange.Value2.ToString());
  aRange.Value2 = DateTime.Now.ToString("HH時mm分ss秒");
  aRange.Font.Size = 18; //文字サイズ
  aRange.Font.Name = "Meiryo UI";  //フォント
  aRange.Font.Bold = true;  //BOLD
  aRange.Font.Color = 0xFF0000;  //文字色
  aRange.Interior.Color = 0x44FFFF;  //セル色
}
 

 

また、罫線を描くために以下のようなコードも追加しました。

罫線は一度に全方向を描くことができず、上下左右中をそれぞれ指定する必要あります。

//"A1:C5"セルに罫線を引く
Excel.Range kRange = xlApp.get_Range("A1:C5",Type.Missing) as Excel.Range;
kRange.Borders.get_Item(Excel.XlBordersIndex.xlEdgeBottom).LineStyle = Excel.XlLineStyle.xlContinuous;
kRange.Borders.get_Item(Excel.XlBordersIndex.xlEdgeLeft).LineStyle = Excel.XlLineStyle.xlContinuous;
kRange.Borders.get_Item(Excel.XlBordersIndex.xlEdgeRight).LineStyle = Excel.XlLineStyle.xlContinuous;
kRange.Borders.get_Item(Excel.XlBordersIndex.xlEdgeTop).LineStyle = Excel.XlLineStyle.xlContinuous;
kRange.Borders.get_Item(Excel.XlBordersIndex.xlInsideHorizontal).LineStyle = Excel.XlLineStyle.xlContinuous;
kRange.Borders.get_Item(Excel.XlBordersIndex.xlInsideVertical).LineStyle = Excel.XlLineStyle.xlContinuous;
 

 

ソースコード全文

以下がソースコード全文です。

[ad#ad-1]

スポンサーリンク

 - C#応用編, Excel