読者です 読者をやめる 読者になる 読者になる

プログラミングでアイデアを具現化したい

あらゆるものを具現化するためにプログラミングを始めました。主にC#

エクセル開くだけのアプリ

C#

対して工夫のないものですが、久々にアプリ作ったので。

まああれです。パスワード付きのエクセル開くのに

都度入力すんのめんどいなーってことで、フォームアプリから

1クリックで開けるようにしたってだけですねw

共通のイベントなので、ボタン増やせばそのまま流用できます。

※buttonnameの最後の数字と配列の格納順は合わせてください。



f:id:tos5511:20160701005321p:plain

using System;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;

namespace ExcelApp {
    public partial class ExcelApp : Form {
        public ExcelApp() {
            InitializeComponent();
        }

        private string[] fileName = {
            @"D:\マイドキュメント\XXXXX.xlsx"
        };

    // Excel.Applicationを有効にするため参照の追加を行なってください 
    // [参照の追加],[COM],[Microsoft Excel *.* Object Library] 
        Excel.Application oExcelApp = new Excel.Application(); //Excel obj
        Excel.Workbook oExWB = null; //ExcelWorkBook obj
        
        private void OpneExcel(int n) {
            try {
                oExcelApp.DisplayAlerts = false;    //Excelの確認ダイアログ表示有無
                oExcelApp.Visible = true;           //Excel表示有無
                oExWB = (Excel.Workbook)(oExcelApp.Workbooks.Open(
                    fileName[n],                    //FileName
                    Type.Missing,                   //updateLinks
                    false,                          //ReadOnly
                    Type.Missing,                   //Format
                    "password",                     //Password
                    Type.Missing,                   //WriteResPassword
                    Type.Missing,                   //lgnoreReadOnlyRecommended
                    Type.Missing,                   //Origin
                    Type.Missing,                   //Delimiter
                    Type.Missing,                   //Editable
                    Type.Missing,                   //Notify
                    Type.Missing,                   //Converter
                    Type.Missing,                   //AddTomru
                    Type.Missing,                   //Local
                    Type.Missing                    //CorruptLoad
                    ));
            }
            catch (System.IO.FileNotFoundException){
                MessageBox.Show(
                    "ファイル操作に失敗しました。\n",
                    Application.ProductName,
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Warning
                    );

            }
        }
        /// <summary>
        /// ボタン押下共通イベント
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnClick(object sender,EventArgs e) {
            Button btn = (Button)sender;
            //button1とか最後の数字で押されたボタンを認識して
            //その番号とfileNameの添え字をリンクさせる作りです。
            int n = int.Parse(btn.Name.Substring(btn.Name.Length - 1, 1));
            OpneExcel(n - 1);
        }
    }
}