今日Excelを開いたら、以下のようにタイトルバーなど全体の色が灰色になってしまっていた…
元の状態に戻すには、画面左上の「ファイル」をクリックし、表示された画面左下の「アカウント」をクリックする(※アカウントが表示されない場合は、Excelの画面幅を広げれば表示される)。
次に、Officeテーマを「濃い灰色」から「カラフル」に変更すれば元に戻る!(この設定を変更するとWordの背景色もカラフルになる)。
※2022/2/9に配信されたExcelから利用可能
LAMBDA(ラムダ)を使えば、独自の関数を作れるとのことなので、利用する手順を確認してみた。
直接セルに関数も書けるようだが、書式タブ→名前の管理を開き、任意の名前と、定義する内容を参照範囲に記載する。
例. =LAMBDA(value1,value2,value3, value1 + value2 + value3)
ここでは、ORIGINAL_ADDという名前の関数とし、引数を3つ(value1~value3)定義した。LAMBDAの最後の引数が実際の処理になる。ここでは渡されたvalue1~3までを足した値を返すようにした。
以下のように渡した3つの値を足した結果が返ってきた。
尚、今回試したところ、次のパターンはエラー(#VALUE)となった(文字列を含む場合)。
ただし、次の場合にはエラーにはならなかった(引数の値を省略した場合)。
同じ計算式を複数のセルで利用する場合には便利そうな機能。
ただ、どの環境でも使えるようになるには時間が掛かると思われるので、不特定の人が利用するExcelではいまのところ利用は控えた方がよさそう。
C#でのExcel出力が簡単にできるDLLの提供サービスを行っています。
詳細はこちらをご確認ください。
このページでは、その使い方を紹介しています。
//Excel起動
using (var excelWrapper = new JSKExcelWrapper.JSKExcelWrapper())
{
//テンプレート(ひな形)ファイルパス取得
var templatePath = Path.Combine(Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath), @"テンプレート\帳票テンプレート.xlsx");
//◆Excelファイル開く
excelWrapper.OpenWorkbook(templatePath);
//◆シート取得
Worksheet worksheet = excelWrapper.GetWorksheet("template");
//帳票形式で表示させるためのダミーデータ
var dummyData = new List<string[]>()
{
new string[]{"A001", "部品1", "TEST-A001", "汎用部品1", "メモ1"},
new string[]{"A002", "部品2", "TEST-A002", "汎用部品2", "メモ2"},
new string[]{"A003", "部品3", "TEST-A003", "汎用部品3", "メモ3"},
new string[]{"A004", "部品4", "TEST-A004", "汎用部品4", "メモ4"},
new string[]{"A005", "部品5", "TEST-A005", "汎用部品5", "メモ5"},
new string[]{"A006", "部品6", "TEST-A006", "汎用部品6", "メモ6"},
new string[]{"A001", "部品1", "TEST-A001", "汎用部品1", "メモ1"},
new string[]{"A002", "部品2", "TEST-A002", "汎用部品2", "メモ2"},
new string[]{"A003", "部品3", "TEST-A003", "汎用部品3", "メモ3"},
new string[]{"A004", "部品4", "TEST-A004", "汎用部品4", "メモ4"},
new string[]{"A005", "部品5", "TEST-A005", "汎用部品5", "メモ5"},
new string[]{"A006", "部品6", "TEST-A006", "汎用部品6", "メモ6"},
new string[]{"A001", "部品1", "TEST-A001", "汎用部品1", "メモ1"},
new string[]{"A002", "部品2", "TEST-A002", "汎用部品2", "メモ2"},
new string[]{"A003", "部品3", "TEST-A003", "汎用部品3", "メモ3"},
new string[]{"A004", "部品4", "TEST-A004", "汎用部品4", "メモ4"},
new string[]{"A005", "部品5", "TEST-A005", "汎用部品5", "メモ5"},
new string[]{"A006", "部品6", "TEST-A006", "汎用部品6", "メモ6"},
new string[]{"A001", "部品1", "TEST-A001", "汎用部品1", "メモ1"},
new string[]{"A002", "部品2", "TEST-A002", "汎用部品2", "メモ2"},
new string[]{"A003", "部品3", "TEST-A003", "汎用部品3", "メモ3"},
new string[]{"A004", "部品4", "TEST-A004", "汎用部品4", "メモ4"},
new string[]{"A005", "部品5", "TEST-A005", "汎用部品5", "メモ5"},
new string[]{"A006", "部品6", "TEST-A006", "汎用部品6", "メモ6"},
new string[]{"A001", "部品1", "TEST-A001", "汎用部品1", "メモ1"},
new string[]{"A002", "部品2", "TEST-A002", "汎用部品2", "メモ2"},
new string[]{"A003", "部品3", "TEST-A003", "汎用部品3", "メモ3"},
new string[]{"A004", "部品4", "TEST-A004", "汎用部品4", "メモ4"},
new string[]{"A005", "部品5", "TEST-A005", "汎用部品5", "メモ5"},
new string[]{"A006", "部品6", "TEST-A006", "汎用部品6", "メモ6"},
new string[]{"A001", "部品1", "TEST-A001", "汎用部品1", "メモ1"},
new string[]{"A002", "部品2", "TEST-A002", "汎用部品2", "メモ2"},
new string[]{"A003", "部品3", "TEST-A003", "汎用部品3", "メモ3"},
new string[]{"A004", "部品4", "TEST-A004", "汎用部品4", "メモ4"},
new string[]{"A005", "部品5", "TEST-A005", "汎用部品5", "メモ5"},
new string[]{"A006", "部品6", "TEST-A006", "汎用部品6", "メモ6"},
};
//◆テンプレートファイルの各セルに設定されたセル名から、転記すするセル番地を取得する
var indexCode1 = excelWrapper.GetExcelIndexData(worksheet, "コード");
var indexName1 = excelWrapper.GetExcelIndexData(worksheet, "名称");
var indexCode2 = excelWrapper.GetExcelIndexData(worksheet, "コード2");
var indexName2 = excelWrapper.GetExcelIndexData(worksheet, "名称2");
var indexMemo = excelWrapper.GetExcelIndexData(worksheet, "メモ");
//◆データ数分、明細行を行コピーする(罫線や書式もコピーされる)
excelWrapper.CopyRow(worksheet,
indexCode1.rowIndex/*コピー行の行番号(開始)*/,
indexCode1.rowIndex/*コピー行の行番号(終了)*/,
indexCode1.rowIndex + 1/*貼り付ける位置の行番号(開始) 最初の1行はすでに存在しているので、次の行からコピーする*/,
indexCode1.rowIndex + dummyData.Count - 1/*貼り付ける位置の行番号(終了) 最初の1行はすでに存在しているので、-1する*/);
//データの行数分回す
foreach (var data in dummyData)
{
//◆転記
excelWrapper.SetCellValue(worksheet, indexCode1, data[0]);
excelWrapper.SetCellValue(worksheet, indexName1, data[1]);
excelWrapper.SetCellValue(worksheet, indexCode2, data[2]);
excelWrapper.SetCellValue(worksheet, indexName2, data[3]);
excelWrapper.SetCellValue(worksheet, indexMemo, data[4]);
//◆記載が終わったので、次の行へインデックスをずらす
indexCode1.NextRow();
indexName1.NextRow();
indexCode2.NextRow();
indexName2.NextRow();
indexMemo.NextRow();
}
//出力先パス(このEXEと同じフォルダに出力)
var fileBase = Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath) + @"\サンプル出力⑤_" + DateTime.Now.ToString("yyyyMMddHHmmss");
//◆ファイル出力
excelWrapper.SaveExcel(fileBase + ".xlsx"); //Excelファイル出力
excelWrapper.SavePDF(fileBase + ".pdf"); //PDFファイル出力
//◆プレビュー表示
excelWrapper.Preview();
}
C#でのExcel出力が簡単にできるDLLの提供サービスを行っています。
詳細はこちらをご確認ください。
このページでは、その使い方を紹介しています。
//Excel起動
using (var excelWrapper = new JSKExcelWrapper.JSKExcelWrapper())
{
//◆シート追加
var worksheetSample1 = excelWrapper.AddWorksheet("Sample1");
var worksheetSample2 = excelWrapper.AddWorksheet("Sample2");
//◆シート名変更(__Sample__から、NewSheetに変更)
worksheetSample2 = excelWrapper.ChangeWorksheetName("Sample2", "NewSheet2");
//◆シート削除(Sheet1というシートが自動作成されるので削除する)
excelWrapper.DeleteWorksheet("Sheet1");
//◆シート非表示
excelWrapper.HideWorksheet(worksheetSample2);
//◆シート表示
excelWrapper.ShowWorksheet(worksheetSample2);
//◆文字入力(A1~D100の全セルに「テスト」という文字を書き込む)
excelWrapper.SetCellValue(worksheetSample1, "A1:H30", "テスト");
//◆罫線
excelWrapper.SetLine(worksheetSample1, "A1:H30");
//◆改ページクリア(現在設定されている改ページをすべて消す)
excelWrapper.ClearAlllBreaks(worksheetSample1);
//◆改ページ設定(縦方向)
excelWrapper.SetVPageBreaks(worksheetSample1, "E15");
//◆改ページ設定(横方向)
excelWrapper.SetHPageBreaks(worksheetSample1, "A16");
//◆シートコピー(コピー元、コピー先)
excelWrapper.CopyWorksheet("Sample1", "コピーしたシート");
//出力先パス(このEXEと同じフォルダに出力)
var fileBase = Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath) + @"\サンプル出力④_" + DateTime.Now.ToString("yyyyMMddHHmmss");
//◆ファイル出力
excelWrapper.SaveExcel(fileBase + ".xlsx"); //Excelファイル出力
excelWrapper.SavePDF(fileBase + ".pdf"); //PDFファイル出力
//◆プレビュー表示
excelWrapper.Preview();
}
C#でのExcel出力が簡単にできるDLLの提供サービスを行っています。
詳細はこちらをご確認ください。
このページでは、その使い方を紹介しています。
//Excel起動
using (var excelWrapper = new JSKExcelWrapper.JSKExcelWrapper())
{
//◆シート取得
var worksheet = excelWrapper.GetWorksheet("Sheet1");
//◆グラフ用のデータを記載
//第2引数で複数のセル範囲を指定した場合、最後の引数にそれぞれのセルに記載する値を指定できる。
//その場合、引数に指定された値が左から1行ずつ記載されていく(A1→B1→A2→B2→A3→B3→A4→B4の順)
excelWrapper.SetCellValue(worksheet, "A1:B4",
"項目名", "値",
"項目1", "50",
"項目2", "75",
"項目3", "60");
//◆枠線を追加
excelWrapper.SetLine(worksheet, "A1:B4");
//◆縦棒グラフ
excelWrapper.AddChartVerticalBar(worksheet, "A1:B4", "縦棒グラフ(セル指定)", "A6", 200, 200); //表示位置をセル番地を指定する場合
excelWrapper.AddChartVerticalBar(worksheet, "A1:B4", "縦棒グラフ(座標指定)", 220, 90, 200, 200); //表示位置を座標で指定する場合
//◆折れ線グラフ
excelWrapper.AddChartLine(worksheet, "A1:B4", "折れ線グラフ(セル指定)", "A17", 200, 200); //表示位置をセル番地を指定する場合
excelWrapper.AddChartLine(worksheet, "A1:B4", "折れ線グラフ(座標指定)", 220, 300, 200, 200); //表示位置を座標で指定する場合
//◆円グラフ
excelWrapper.AddChartCircle(worksheet, "A1:B4", "円グラフ(セル指定)", "A28", 200, 200); //表示位置をセル番地を指定する場合
excelWrapper.AddChartCircle(worksheet, "A1:B4", "円グラフ(座標指定)", 220, 510, 200, 200); //表示位置を座標で指定する場合
//出力先パス(このEXEと同じフォルダに出力)
var fileBase = Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath) + @"\サンプル出力③_" + DateTime.Now.ToString("yyyyMMddHHmmss");
//◆ファイル出力
excelWrapper.SaveExcel(fileBase + ".xlsx"); //Excelファイル出力
excelWrapper.SavePDF(fileBase + ".pdf"); //PDFファイル出力
//◆プレビュー表示
excelWrapper.Preview();
}
C#でのExcel出力が簡単にできるDLLの提供サービスを行っています。
詳細はこちらをご確認ください。
このページでは、その使い方を紹介しています。
//Excel起動
using (var excelWrapper = new JSKExcelWrapper.JSKExcelWrapper())
{
//◆シート取得
var worksheet = excelWrapper.GetWorksheet("Sheet1");
//◆四角形追加
excelWrapper.AddShapeSquare(worksheet, "A1", 100, 100, Color.Red); //表示位置をセル番地を指定する場合
excelWrapper.AddShapeSquare(worksheet, 120, 0, 100, 100, Color.Blue); //表示位置を座標で指定する場合
//◆円形追加
excelWrapper.AddShapeCircle(worksheet, "A8", 100, 100, Color.Red); //表示位置をセル番地を指定する場合
excelWrapper.AddShapeCircle(worksheet, 120, 140, 100, 100, Color.Blue); //表示位置を座標で指定する場合
//◆画像ファイル追加
//画像ファイルパス取得
var picturePath = Path.Combine(Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath), @"テンプレート\画像サンプル(いらすとやさん).png");
excelWrapper.AddPicture(worksheet, picturePath, "A20", 100, 100); //表示位置をセル番地を指定する場合
excelWrapper.AddPicture(worksheet, picturePath, 100, 350, 100, 100); //表示位置を座標で指定する場合
//出力先パス(このEXEと同じフォルダに出力)
var fileBase = Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath) + @"\サンプル出力②_" + DateTime.Now.ToString("yyyyMMddHHmmss");
//◆ファイル出力
excelWrapper.SaveExcel(fileBase + ".xlsx"); //Excelファイル出力
excelWrapper.SavePDF(fileBase + ".pdf"); //PDFファイル出力
//◆プレビュー表示
excelWrapper.Preview();
}
C#でのExcel出力が簡単にできるDLLの提供サービスを行っています。
詳細はこちらをご確認ください。
このページでは、その使い方を紹介しています。
//Excel起動
using (var excelWrapper = new JSKExcelWrapper.JSKExcelWrapper())
{
//◆シート取得
var worksheet = excelWrapper.GetWorksheet("Sheet1");
//◆文字入力
excelWrapper.SetCellValue(worksheet, "A1", "A1へ書き込み");
excelWrapper.SetCellValue(worksheet, "A2", Color.Red, "A2へ書き込み(文字列赤)"); //文字色変更
excelWrapper.SetCellValue(worksheet, "A3:B4", Color.Green, "複数セルまとめて記載");
excelWrapper.SetCellValue(worksheet, "C1", "1");
excelWrapper.SetCellValue(worksheet, "C2", "2");
excelWrapper.SetCellValue(worksheet, "C3", "=C1+C2"); //計算式入力
//◆列幅変更(A列を変更)
excelWrapper.SetColumnWidth(worksheet, "A", 20);
//◆行高さ変更(1行目~3行目を変更)
excelWrapper.SetRowHeight(worksheet, "1:4", 20);
//◆罫線
excelWrapper.SetLine(worksheet, "C1:C3");
//◆セル背景色
excelWrapper.SetCellBackColor(worksheet, "C3", Color.Green);
//◆文字取得
Console.WriteLine("取得した文字:" + excelWrapper.GetCellValue(worksheet, "A1"));
Console.WriteLine("取得した文字:" + excelWrapper.GetCellValue(worksheet, "A2:A3")); //複数セル纏めて
Console.WriteLine("取得した文字:" + excelWrapper.GetCellValue(worksheet, "C3")); //検索結果の値が返る
//◆日付形式で表示
excelWrapper.SetCellValue(worksheet, "D1", "44090");
excelWrapper.SetCellFormat(worksheet, "D1", "yyyy/MM/dd");
//◆数値の3桁区切りで表示
excelWrapper.SetCellValue(worksheet, "D2:D3", "123456789");
excelWrapper.SetCellFormat(worksheet, "D2:D3", "#,##0");
//出力先パス(このEXEと同じフォルダに出力)
var fileBase = Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath) + @"\サンプル出力①_" + DateTime.Now.ToString("yyyyMMddHHmmss");
//◆ファイル出力
excelWrapper.SaveExcel(fileBase + ".xlsx"); //Excelファイル出力
excelWrapper.SavePDF(fileBase + ".pdf"); //PDFファイル出力
//◆プレビュー表示
excelWrapper.Preview();
}

このDLLを利用して実際に出力したExcelファイルです。Excelのプレビュー機能を利用して、出力したファイルをすぐに表示することにより、プログラムの一部として利用することができます。
C#のアプリを開発中に、Excelファイルでの出力が必要な場面は結構あると思います。
このサービスでは、Excel出力が簡単になるDLLを販売しています。このDLLを使えば、簡単にExcelファイルを出力できるようになります。
尚、このDLLはExcelの操作自動化により実現しているため、動作させるPCにExcelがインストールされている必要があります。また、NuGetからダウンロードできるNetOffice(v1.7.4.4)というツールを利用しています。これらがインストールされていない環境では動作しません。ご購入前には、必ずサンプルアプリをダウンロードして動作することを確認した上でご購入をお願いいたします。ご購入後のキャンセルはできません。
<対応する機能>
・セルの文字取得、文字書き込み、文字の色付け(「A1」などのように番地指定)
・セルの列幅、行高さの指定
・新規ブック、シートの追加。シートのコピー。改ページ設定。シートの表示/非表示
・Excelプレビュー表示
・Excelファイル保存、PDFファイル保存
・セル背景色、罫線、表示形式設定
・シェイプ図形(四角形、円形)追加
・グラフ(縦棒/折れ線/円)追加
・セル番地の計算が簡単にできる機能(「A1」と指定して、NextRow()メソッドを呼び出すと、「A2」と自動計算してくれる)
・画像ファイル追加
・テンプレートのExcelファイルを利用した、帳票形式でのファイル出力(セルの名前指定によるデータの転記、行コピーによる罫線などの書式コピー)
※このDLLを利用するにはExcelがインストールされている必要があります(インストールされていない環境では動作しません)
※NetOffice.Excel.Net45とNetOffice.Core.Net45を必要としますNuGetでそれぞれv1.7.4.4をインストールしてください(※これ以外のバージョンでは動作しません)
※コンパイル済みのDLLと、それを利用したサンプルアプリのソースコード(Visual Studio 2017 C# .NET Framework 4.8)を同梱しています。
DLLのソースコードは公開していません。
※配布するDLLは業務アプリ等に組み込んでご利用・販売いただけます。但し、DLLのみを第3者に公開・販売することは禁止します。著作権も譲渡しません。
※Windows10、Excel2016でのみ動作確認を行っています。必ず、ご購入前にサンプルアプリをダウンロードして、動作確認を行ってください。ご購入後の返品はできません。
お渡しするDLLを操作するサンプルソースコードはこちらからお試しダウンロードできます(8.6MB)
※ダウンロード後、Zipファイルを解凍する前に、ファイルを右クリック→全般タブの一番下のセキュリティの「許可する」にチェックを入れて、「OK」ボタンをクリックした後に、解凍してください。

このサンプルアプリをダウンロードできます。ボタンをクリックするだけでExcelファイルが出力されるので、ご購入前の動作確認も容易です。
C#のExcel出力が簡単になるDLLを提供します 数行記述するだけで簡単にExcelファイル出力が可能です!
Excel2016の機能を利用して、下のような日本地図を作成できます。

必要な設定と、作成した図をpngファイルとして保存できる機能を追加したExcelファイルをご用意いたしました。以下からダウンロードしてご利用ください。
