|
■No64407 (nobu さん) に返信
> oRange.Borders.get_Item(Excel.XlBordersIndex.xlDiagonalDown).LineStyle = Excel.XlLineStyle.xlDouble;
borders = oRange.Borders;
border = borders.get_Item(Excel.XlBordersIndex.xlDiagonalDown);
border.LineStyle = Excel.XlLineStyle.xlDouble;
にしておかないと、解放時に問題があるかと。
> なソースが出ていたのですが、この線を消す時はどうすれば良いでしょうか?
> Excel.XlLineStyle.xlLineStyleNone
> で消えなくて他にそれらしいものが見つかりませんでした。
普通に消えましたが…。
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using Excel = Microsoft.Office.Interop.Excel;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Excel.Application app = new Excel.Application() { Visible = true };
Excel.Workbooks books = app.Workbooks;
Excel.Workbook book = books.Add();
Excel.Sheets sheets = book.Worksheets;
//dynamic sheet = sheets[1];
Excel.Worksheet sheet = sheets[1];
Excel.Range range = sheet.get_Range("B2");
Excel.Borders borders = range.Borders;
Excel.Border border = borders.get_Item(Excel.XlBordersIndex.xlDiagonalDown);
border.LineStyle = Excel.XlLineStyle.xlDouble;
MessageBox.Show("消してみます。", "Sample",
MessageBoxButtons.OK,
MessageBoxIcon.Information,
MessageBoxDefaultButton.Button1,
MessageBoxOptions.ServiceNotification);
border.LineStyle = Excel.XlLineStyle.xlLineStyleNone;
MessageBox.Show("消したつもり。", "Sample",
MessageBoxButtons.OK,
MessageBoxIcon.Information,
MessageBoxDefaultButton.Button1,
MessageBoxOptions.ServiceNotification);
Release(border);
Release(borders);
Release(range);
Release(sheet);
Release(sheets);
book.Close(false);
Release(book);
Release(books);
app.Quit();
Release(app);
}
private void Release(object o)
{
if (Marshal.IsComObject(o))
{
Marshal.ReleaseComObject(o);
}
}
}
}
|