メルマガイドよくある質問サイトマップ

Nagadon の C# 入門

RSS
最新号をメルマガでお届け

この記事の発行者<<前の記事次の記事>>最新の記事

★ Nagadon の C# 入門 ★ [139:Excel のコントロール第 2 回]

発行日: 2004/7/22

==== [ ▼PR ] ========================================================
■■■■■■■■■■■■■■  ”効果不透明”な部数広告とは違います!
■ アクセス数保証広告  ■  部数広告としても三万〜五万部以上に掲載
■100アクセス=一万円!■  料金も業界最安値で、しかも効果抜群!
■■■■■■■■■■■■■■   一万円からお申し込みできます!
 メルマガ発行者コミュニティー「めるCOM」参加マガジンに掲載!
 今すぐClick!⇒ http://megajapan.com/m/m.cgi?SC=I&m=00001525
======================================================== [ ▲PR ] ====
==== [ ▼PR ] ========================================================
                メールマガジン - Nagadon の C# 入門 -

                    ★ ヘッダ/フッタ広告募集中 ★

    詳しくは → http://www.nagadon.com/magazine/advertisement.htm
======================================================== [ ▲PR ] ====

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
                   ◆◇◆ Nagadon の C# 入門 ◆◇◆            Vol.139

      ●2004/07/22 (毎週木曜日発行) ●配信数 2500   csharp@nagadon.com
----------------------------------------------------------------------
                   アドウェイズ SE 募集中!!
              http://www.nagadon.com/magazine/adways.htm
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

この日曜日に、妻と娘と 3 人で田原本町のぎおん祭りに行ってきました。天
気が良かったせいもあり、ものすごい人出で、歩くのにも一苦労でした。夜店
でクレープやフランクフルト、その他色々食べておなかいっぱいになり、その
日の晩御飯はお茶漬けだけしか食べられませんでした(笑)

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■Excel のコントロール第 2 回

今回は、C# から Excel をコントロールする方法について、もう少し踏み込ん
でお話したいと思います。

まず、前回作成したプロジェクトを準備してください。プロジェクトを持って
おられない方は、以下の場所よりダウンロードしてください。

http://www.nagadon.com/magazine/csharp/cs138/ExcelTest_VS.lzh

正しくコンパイル/実行できたでしょうか?

次に、プログラムから読み込まれる対象のエクセルファイルを準備します。以
下の URL からファイルをダウンロードし、プロジェクトのあるフォルダに移
動してください。

http://www.nagadon.com/magazine/csharp/cs139/population.xls

Class1.cs を以下のように修正します(コード中に記載されている Excel ファ
イルのパスは適宜修正してください)。

using System;
using System.Reflection;
using System.Globalization;

namespace ExcelTest
{
    class Class1
    {
        static void Main()
        {
            // Excel を起動しファイルを読み込む
            // ※ Excel ファイルのパスは適宜修正してください
            Excel.Application app = new Excel.Application();
            Excel._Workbook wb = app.Workbooks.Open(
                @"C:\Temp\ExcelTest\population.xls",
                Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing);
            wb.Application.Visible = true;

            // 人口のデータを配列に読み込む
            Excel._Worksheet ws = (Excel.Worksheet)wb.ActiveSheet;
            int i, j;
            int[] population = new int[47];
            for(i = 0; i < 47; i ++)
            {
                Excel.Range range = (Excel.Range)ws.Cells[i + 2, 2];
                population[i] = int.Parse(
                    (string)range.Text, NumberStyles.Number);
            }

            // 順位を計算
            ws.Cells[1, 3] = "順位";
            for(i = 0; i < 47; i ++)
            {
                int current = population[i];
                int ranking = 1;
                for(j = 0; j < 47; j ++)
                {
                    if(population[j] > current)
                    {
                        ranking ++;
                    }
                }
                ws.Cells[i + 2, 3] = ranking.ToString();
                if(ranking <= 10)
                {
                    // 10 位以内のセルを強調する
                    Excel.Range range =
                        (Excel.Range)ws.Cells[i + 2, 3];
                    range.Interior.ColorIndex = 5;
                    range.Font.ColorIndex = 2;
                    range.Font.Bold = true;
                }
            }

            // ファイルをセーブし、Excel を終了する
            wb.Save();
            app.Quit();
        }
    }
}

いかがでしょうか?コンパイル/実行して正しく動作することを確認してくだ
さい。ポイントとなる箇所がいくつかありますので整理しておきましょう。

●Excel.Applcation クラス ... Excel アプリケーションを表すクラス
Workbooks.Open メソッドで、ファイルをオープン

Quite メソッドで、アプリケーションを終了

●Excel._Workbook クラス ... Excel ファイル(ワークブック)を表すクラス
Application.Visible プロパティで、表示 / 非表示の設定を行う

ActiveSheet プロパティで、現在アクティブなワークシートを取得

Save メソッドで、ワークブックを保存

●Excel._Worksheet クラス ... ワークブック内のワークシートを現すクラス
Cells[列, 行] プロパティで、指定したセルに対する Excel.Range
クラスのインスタンスを取得

●Excel.Range クラス ... 1 つ以上のセル範囲を表す("B4" / "A1:D12" 等)
Text プロパティで、指定したセルの文字列を取得。但し、2 つ以上
のセル範囲を示していた場合は無効。

Interior プロパティで、背景の属性を決定

Font プロパティで、フォントの属性を決定

いかがでしょうか?特に上記の 4 つのクラスは Excel を操作する上で重要な
クラスです。もちろん、各クラスが持つ全てのメソッドやプロパティを覚える
必要はありません。まずは、それぞれのクラスが何を表しているかをイメージ
出来れば十分だと思います。

なお、今回作成したプロジェクトは以下の場所においてあります。

http://www.nagadon.com/magazine/csharp/cs139/ExcelTest_VS.lzh

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
●.NET Framework 環境のみでコンパイルされる方へ

以下のファイルをダウンロードし、build.bat を実行してください。

http://www.nagadon.com/magazine/csharp/cs139/ExcelTest_FW.lzh

実行ファイル ExcelTest.exe が生成されますので、実行して動作を確かめて
みてください。

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
●発行責任者:Nagadon (csharp@nagadon.com)
●記事の転載は自由です。事前の連絡は不要です。
●購読・購読の解除・バックナンバーの閲覧は以下の URL から可能です。
  http://www.nagadon.com/magazine/csharp/index.htm
●文中で利用している画像は「牛飼いとアイコンの部屋」のものを利用しています。
  http://www.ushikai.com
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
This magazine is published by
Mag2    (http://www.mag2.com     Mag2    ID: 0000069455) and
melma!  (http://www.melma.com    melma!  ID: m00039385 ) .

==== [ ▼PR ] ========================================================
     ,−−、      リクエステムメールサービスから... 生まれました
   /      \     何が??? 
   V・  ・V ─┐  欲しい賞品を、応募のしやすさを、曜日を指定
┌ω人=♀=ノω┐│  お望みにかなう優先度でセレクトしてお届けします
│            ││
│究 極 の │/  プレゼント情報メールサービス 「  My Choice 」
└──────┘ 日本最大級の懸賞情報! あたり放題!!
今すぐ!===>  http://megajapan.com/o/o.cgi?SC=M&m=/eOe  
======================================================== [ ▲PR ] ====
==== [ ▼PR ] ========================================================
リクエステムメールサービスユーザ70,000人とお友達になれるかも!?

   メ┃ー┃ル┃フ┃レ┃ン┃ド┃サ┃ー┃ビ┃ス┃始┃ま┃る┃
   ━┛━┛━┛━┛━┛━┛━┛━┛━┛━┛━┛━┛━┛━┛
 ◆メールアドレス非公開で、メール交換ができるから、女の人も安心!!
どんな人がいるかな? 地域、年齢、趣味etc...でお友達が探せます
今すぐ試して!===> http://megajapan.com/o/o.cgi?SC=F&m=/eOe
======================================================== [ ▲PR ] ====

この記事の発行者<<前の記事次の記事>>最新の記事

 
  規約   
>> メルマ!の会報誌もお届けします

ブックマーク: はてなブックマークに追加del.icio.usに追加Buzzurlにブックマークニフティクリップに追加ライブドアクリップに追加Yahoo!ブックマークに登録My Yahoo!に追加Add to Google

この記事へのコメント


コメントを書く
コメントはありません。

このメルマガの最近の記事




関連メルマガを探す


おすすめメルマガ詰め合わせ海水浴へ行く前に★チェックしておこう、海のこと輝く星に願いを込めて☆夜空をながめて夕涼み

メルマ! ガ オブ ザ イヤー 受賞メルマガ2008年度の受賞メルマガ
2007年度の受賞メルマガ
2006年度の受賞メルマガ
2005年度の受賞メルマガ




melma! ご利用規約 │ メールマガジン発行規約 │ お問い合わせ │ 会社概要 │ プライバシーポリシー
インターネット広告 サイバーエージェント