|
分類:[.NET 全般]
宜しくお願い致します
Windowsフォームアプリケーション.NET Framework c#
今作っているのがtextbox1に文字を入れボタンを押すと
現在パソコン上に開いているエクセルのA列を検索して
合致したB列のデータをtextbox2に表示しています
実行ファイルだけをコピーして違うパソコンでも使える様にしたいのですが
現在ILRepack.Lib.MSBuild.Taskを使用して実行ファイルを製作しようとしています
Releaseのフォルダの中のアプリケーションが
(dll)を含んだ状態にならないのですがどの様にすればいいでしょうか
宜しくお願い致します
using System;
using System.Windows.Forms;
using NetOffice.ExcelApi;
namespace WindowsFormsApp10
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string searchValue = textBox1.Text.Trim();
if (string.IsNullOrEmpty(searchValue))
{
MessageBox.Show("検索する値を入力してください。");
return;
}
try
{
NetOffice.ExcelApi.Application excelApp = GetRunningExcelInstance();
if (excelApp == null || excelApp.Workbooks.Count == 0)
{
MessageBox.Show("開いているExcelがありません。");
return;
}
Workbook workbook = excelApp.ActiveWorkbook;
Worksheet worksheet = (Worksheet)workbook.ActiveSheet;
Range usedRange = worksheet.UsedRange;
Range columnA = usedRange.Columns[1];
bool found = false;
foreach (Range cell in columnA.Rows)
{
if (cell.Value != null && cell.Value.ToString() == searchValue)
{
Range cellB = worksheet.Cells[cell.Row, 2];
textBox2.Text = cellB.Value?.ToString() ?? "(値なし)";
textBox1.Clear();
Range cellC = worksheet.Cells[cell.Row, 3];
string textToRead = cellC.Value?.ToString();
found = true;
break;
}
}
if (!found)
{
MessageBox.Show("一致するデータが見つかりませんでした。");
}
}
catch (Exception ex)
{
MessageBox.Show("エラー: " + ex.Message);
}
}
private NetOffice.ExcelApi.Application GetRunningExcelInstance()
{
try
{
return NetOffice.ExcelApi.Application.GetActiveInstance();
}
catch
{
return null;
}
}
}
}
|