|
分類:[.NET 全般]
c# Windows Form アプリケーション .NET Framework
前回教えて頂いた内容と似ているのですが
textbox1に文字列を入れてボタンを押すと、現在開いているエクセルのA列を検索して
一致するものがあればB列の文字列をtextbox2に表示をさせたいのです
これも前回と同じようなインフォメーションが出てきてしまうのですが
Microsoft.Office.Interop.Excelの使い方がおかしいのでしょうか
宜しくお願い致します
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using Excel = Microsoft.Office.Interop.Excel;
namespace WindowsFormsApp5
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click_1(object sender, EventArgs e)
{
string searchValue = textBox1.Text;
if (string.IsNullOrEmpty(searchValue))
{
MessageBox.Show("検索する文字を入力してください。");
return;
}
try
{
Excel.Application excelApp = (Excel.Application)Marshal.GetActiveObject("Excel.Application");
Excel.Workbook workbook = excelApp.ActiveWorkbook;
Excel.Worksheet worksheet = workbook.Sheets[1] as Excel.Worksheet;
Excel.Range range = worksheet.Range["A:A"];
Excel.Range foundCell = range.Find(searchValue);
if (foundCell != null)
{
string result = (string)(worksheet.Cells[foundCell.Row, 2] as Excel.Range).Value;
textBox2.Text = result;
}
else
{
MessageBox.Show("一致するデータが見つかりませんでした。");
}
}
catch (COMException ex)
{
MessageBox.Show($"Excelに接続できませんでした: {ex.Message}");
}
catch (Exception ex)
{
MessageBox.Show($"エラーが発生しました: {ex.Message}");
}
}
}
}
|