ブログトップ 記事一覧 ログイン 無料ブログ開設

粗茶@なでしこのはてな このページをアンテナに追加 RSSフィード

Amazon

2019-12-31

お知らせ

 日本語プログラミング言語「なでしこ」は、日常業務を手軽にハックできる、日本語版手続き処理システムです。

公式マニュアル発売中

待望の公式マニュアルがAmazonで購入できます!

日本語プログラム言語なでしこ公式バイブル

日本語プログラム言語なでしこ公式バイブル

ユーザーズ・マニュアル発売中

 Wikiマニュアルを編集した、ユーザーによるマニュアル

 f:id:nade_socha:20090825145039g:image

 日本語プログラミング言語なでしこユーザーズ・マニュアルvol.1

 現在、在庫10冊程度です。

 教育用に学校の図書館等に寄贈しています。ご希望の学校はsocha@nadesi.comまでご連絡下さい。

コミュニティ

 イベント参加や勉強会の開催など

 日本語プログラミング言語 友の会内、なでしこ友の会

 なでしこ関西地域ユーザー会

イベント開催

 開催場所:明治大学(東京)駿河台キャンパス(研究棟)

 日時:2011年11月19日(土曜日)

 時間:13:20受付 13:40開始(終了は16時頃を予定)

 金額:無料

 過去のイベントレポートは→こちら

勉強会会場情報募集

 なでしこの勉強会や懇親会で利用できる会場の情報を募集しています。

 →こちら

 なでしこ勉強会の会場リストをまとめています。

 →こちら

企業事例募集

 会社でなでしこを利用している事例を募集しています。

 →こちら

セミナー受付中

 なでしこを使ったプログラミング学習をして欲しいという会社や学校などがありましたらご相談に応じます。

 →こちら

2011-07-15

OSC京都

f:id:nade_socha:20110715175923j:image:w640

(yukさん、応援ありがとう!)

2011-01-28

なでしこのKingsoft Office対応

 現在、なでしこはMicrosoft OfficeとOpen Office.orgに対応していますが、C#でKingsoft Officeを操作することができるらしい(※参照)ので、なでしこ2.0で対応できる可能性がありますね。

2011-01-19

ExcelのBookを開く。

環境:Visual C# 2010、Excel 2010、Windows 7

C#からExcelのBookを開く。

 Excelを起動して、Bookを開くプログラムです。

 実行すると、Excelのアプリケーションが起動します。Bookはまだ開いていません。

 ファイルを開くダイアログボックスが開きますので、ファイルを選択します。

 すると、選択したファイルを開きます。(例外処理をしていませんので、ExcelのBook以外のファイルを選択するとエラーとなります。)

 続いて白紙のBookを開きます。最後にExcelを終了します。

  • プログラム ExcelTest02.cs
//--- ExcelのBookを開く ---
using System;
using Excel = Microsoft.Office.Interop.Excel;
using System.Windows.Forms; //動作チェック用のダイアログ表示に使用

namespace ExcelTest02
{
    class ExcelTest02
    {
        //--- 変数の定義 ---
        Excel._Application xlApp;   //Excelアプリケーション
        Excel.Workbooks xlBooks;    //Bookコレクション
        Excel._Workbook xlBook;     //Bookオブジェクト
        //--- Excelを起動 ---
        void _xlStart()
        {
            if (xlApp != null) return;  //Excelが起動していれば何もしない(二重起動の禁止)
            xlApp = new Excel.Application { Visible = true };   //Excel起動 Visible:true=表示 false=非表示
            xlBooks = xlApp.Workbooks;  //Bookコレクションを取得しておく
        }
        //--- Excelを終了 ---
        void _xlEnd()
        {
            if (xlApp != null)  //Excelが起動していれば処理をする
            {
                xlApp.DisplayAlerts = false;    //終了時の警告ダイアログを表示しない
                xlApp.Quit();   //Excel終了
                xlApp = null;   //オブジェクト解放
            }
        }
        //--- ファイルを開くダイアログ ---
        string _SelectBook()
        {
            OpenFileDialog ofd = new OpenFileDialog();  //ファイルを開くダイアログ
            if (ofd.ShowDialog() == DialogResult.OK) return ofd.FileName;   //選択したファイル名を返す
            return "";
        }
        //--- Bookを開く ---
        void _xlOpenBook(string BFile)
        {
            if (xlApp != null && BFile != null) //Excelが起動して、ファイル名があれば処理をする
            {
                xlBooks.Open(BFile);    //Bookを開く
                xlBook = xlBooks[xlBooks.Count];    //開いたBookをアクティブにする
                xlBook.Activate();
            }
        }
        //--- 新規Bookを開く ---
        void _xlNewBook()
        {
            if (xlApp != null) //Excelが起動していれば処理をする
            {
                xlBooks.Add();  //新規Bookを開く
                xlBook = xlBooks[xlBooks.Count];    //開いたBookをアクティブにする
                xlBook.Activate();
            }
        }
        //--- メインプログラム ---
        [STAThread]
        static void Main()
        {
            ExcelTest02 ex = new ExcelTest02();
            MessageBox.Show("Excelを起動します。");
            ex._xlStart();
            MessageBox.Show("ファイルを選択します。");
            string BFile = ex._SelectBook();
            MessageBox.Show("Bookを開きます。");
            ex._xlOpenBook(BFile);
            MessageBox.Show("新規Bookを追加します。");
            ex._xlNewBook();
            MessageBox.Show("Excelを終了します。");
            ex._xlEnd();
        }
    }
}

※この記事は粗茶の覚え書き用です。間違いの指摘は歓迎しますが、このプログラムを使用したことによる損害等の責任は負いかねますので、ご了承願います。

ExcelのBookを保存する。

環境:Visual C# 2010、Excel 2010、Windows 7

C#からExcelのBookを保存する。

 ExcelでBook開いているBookを保存するプログラムです。

 実行すると、Excelのアプリケーションが起動して、指定したBookを開きます。

 続いてBookを指定したファイルに保存します。最後にExcelを終了します。

 保存時のファイル拡張子には、「.xlsx|.xls|.xlsm|.csv|.txt|.pdf」が選べます。

  • プログラム ExcelTest03.cs
//--- ExcelのBookを保存する ---
using System;
using Excel = Microsoft.Office.Interop.Excel;
using VB=Microsoft.Vbe.Interop; //マクロ用に必要
using System.Windows.Forms; //動作チェック用のダイアログ表示に使用

namespace ExcelTest03
{
    class ExcelTest03
    {
        //--- 変数の定義 ---
        Excel._Application xlApp;   //Excelアプリケーション
        Excel.Workbooks xlBooks;    //Bookコレクション
        Excel._Workbook xlBook;     //Bookオブジェクト
        VB.VBComponents xlModules;  //マクロオブジェクト
        //--- Excelを起動 ---
        void _xlStart()
        {
            if (xlApp != null) return;  //Excelが起動していれば何もしない(二重起動の禁止)
            xlApp = new Excel.Application { Visible = true };   //Excel起動 Visible:true=表示 false=非表示
            xlBooks = xlApp.Workbooks;  //Bookコレクションを取得しておく
        }
        //--- Excelを終了 ---
        void _xlEnd()
        {
            if (xlApp != null)  //Excelが起動していれば処理をする
            {
                xlApp.DisplayAlerts = false;    //終了時の警告ダイアログを表示しない
                xlApp.Quit();   //Excel終了
                xlApp = null;   //オブジェクト解放
            }
        }
        //--- Bookを開く ---
        void _xlOpenBook(string BFile)
        {
            if (xlApp != null && BFile != null) //Excelが起動して、ファイル名があれば処理をする
            {
                xlBooks.Open(BFile);    //Bookを開く
                xlBook = xlBooks[xlBooks.Count];    //開いたBookをアクティブにする
                xlBook.Activate();
            }
        }
        //--- Bookを保存 ---
        void _xlSaveBook(string BFile)
        {
            if (xlApp != null && xlBook != null)    //Excelが起動して、Bookが開いていれば処理をする
            {
                string filename = BFile;
                object format = Excel.XlFileFormat.xlWorkbookNormal;    //ファイル形式
                xlApp.DisplayAlerts = false;    //保存時のダイアログを表示しない
                if (filename == "")
                {
                    xlBook.Save();  //ファイル名指定なければ上書き保存
                    return;
                }
                string ext = System.IO.Path.GetExtension(filename);
                ext = ext.ToLower();
                switch (ext)
                {
                    case ".xlsx":
                        if (double.Parse(xlApp.Version) < 12.0)
                        { MessageBox.Show("Excel2007以上でなければ拡張子.xlsx形式で保存できません。"); return; }
                        //マクロを含んだBookをxlsx形式で保存すれば、マクロを削除して保存する仕様です。
                        //次の2行のコメントを外すと、自動的にxlsm形式(マクロあり)で保存します。
                        //xlModules = xlBook.VBProject.VBComponents;
                        //if (xlModules != null) goto case ".xlsm";   //マクロを含んでいれば.xlsm
                        format = NakoExcel.XlFileFormat.xlOpenXMLWorkbook;
                        break;
                    case ".xls":
                        if (double.Parse(xlApp.Version) < 12.0) { format = NakoExcel.XlFileFormat.xlExcel9795; }
                        else { format = NakoExcel.XlFileFormat.xlExcel8; }  //Excel2007以上の場合
                        break;
                    case ".xlsm":
                        if (double.Parse(xlApp.Version) < 12.0)
                        { MessageBox.Show("Excel2007以上でなければ拡張子.xlsm形式で保存できません。"); return; }
                        format = NakoExcel.XlFileFormat.xlOpenXMLWorkbookMacroEnabled;
                        ext = ".xlsm";
                        break;
                    case ".csv":
                        format = NakoExcel.XlFileFormat.xlCSV;
                        break;
                    case ".txt":
                        format = NakoExcel.XlFileFormat.xlUnicodeText;
                        break;
                    case ".pdf":
                        if (double.Parse(xlApp.Version) < 12.0)
                        { MessageBox.Show("Excel2007以上でなければ拡張子.pdf形式で保存できません。"); return; }
                        break;
                    default:
                        MessageBox.Show("保存形式が無効です。"); return;
                }
                filename = System.IO.Path.ChangeExtension(filename, ext);
                if (ext == ".pdf") { xlSheet.ExportAsFixedFormat(NakoExcel.XlFixedFormatType.xlTypePDF, filename); }
                else { xlBook.SaveAs(filename, format); }
            }
        }
        //--- メインプログラム ---
        static void Main()
        {
            ExcelTest03 ex = new ExcelTest03();
            MessageBox.Show("Excelを起動します。");
            ex._xlStart();
            MessageBox.Show("Bookを開きます。");
            ex._xlOpenBook(@"D:\ExcelTest03.xlsx");
            MessageBox.Show("Bookを保存します。");
            ex._xlSaveBook(@"D:\ExcelTest03.csv");
            MessageBox.Show("Excelを終了します。");
            ex._xlEnd();
        }
    }
}

※この記事は粗茶の覚え書き用です。間違いの指摘は歓迎しますが、このプログラムを使用したことによる損害等の責任は負いかねますので、ご了承願います。

2011-01-17

Excelを起動して終了。

環境:Visual C# 2010、Excel 2010、Windows 7

C#からExcelを起動して終了する。

 Excelを起動して、終了するだけのプログラムです。

 実行すると、Excelのアプリケーションが起動します。Bookは開いていません。

 このプログラムは正常終了すると、プロセスにEXCEL.EXEは残りません。

 プログラムを終了する前に、Excelを終了させないと、プロセスにEXCEL.EXEが残ります。

  • プログラム ExcelTest01.cs
using System;
using Excel = Microsoft.Office.Interop.Excel;
using System.Windows.Forms; //動作チェック用のダイアログ表示に使用

class ExcelTest01
{
    //--- 変数の定義 ---
    Excel._Application xlApp;   //Excelアプリケーション
    Excel.Workbooks xlBooks;    //Bookコレクション
    //--- Excelを起動 ---
    void _xlStart()
    {
        if (xlApp != null) return;  //Excelが起動していれば何もしない(二重起動の禁止)
        xlApp = new Excel.Application { Visible = true };   //Excel起動 Visible:true=表示 false=非表示
        xlBooks = xlApp.Workbooks;  //Bookコレクションを取得しておく
    }
    //--- Excelを終了 ---
    void _xlEnd()
    {
        if (xlApp != null)  //Excelが起動していれば処理をする
        {
            xlApp.DisplayAlerts = false;    //終了時の警告ダイアログを表示しない
            xlApp.Quit();   //Excel終了
            xlApp = null;   //オブジェクト解放
        }
    }
    //--- メインプログラム ---
    static void Main()
    {
        ExcelTest01 ex = new ExcelTest01();
        ex._xlStart();
        MessageBox.Show("Excelを起動しました。");
        MessageBox.Show("Excelを終了します。");
        ex._xlEnd();
    }
}

※この記事は粗茶の覚え書き用です。間違いの指摘は歓迎しますが、このプログラムを使用したことによる損害等の責任は負いかねますので、ご了承願います。