C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ILRepack

[トピック内 1 記事 (1 - 1 表示)]  << 0 >>

■103533 / inTopicNo.1)  ILRepack
  
□投稿者/ TAIKI (1回)-(2025/02/07(Fri) 18:14:05)

分類:[.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;
            }
        }
    }
}

引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ