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

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

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

Re[3]: C#でのExcel操作#2


(過去ログ 76 を表示中)

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

■44689 / inTopicNo.1)  C#でのExcel操作#2
  
□投稿者/ 初心者 (91回)-(2009/12/16(Wed) 00:24:31)

分類:[C#] 

2009/12/16(Wed) 01:17:59 編集(投稿者)
2009/12/16(Wed) 01:17:56 編集(投稿者)

Visual Studio 2008 C#を使用しています。

C#で、Excelのsheetに表示された画像を削除したいのですが
どのようにすればよいのでしょうか。

もうひとつ。
OpenしたExcelファイルの内容を変更しても、
アプリ終了時に保存のダイアログが表示しないのですが、
なぜなのでしょうか。

よろしくお願いします。
引用返信 編集キー/
■44694 / inTopicNo.2)  Re[1]: C#でのExcel操作#2
□投稿者/ 魔界の仮面弁士 (1428回)-(2009/12/16(Wed) 10:14:44)
No44689 (初心者 さん) に返信
> OpenしたExcelファイルの内容を変更しても、
> アプリ終了時に保存のダイアログが表示しないのですが、
> なぜなのでしょうか。

以下の点を確認してみてください。

(Excelの)Applicationオブジェクトにある、DisplayAlerts プロパティが
False になっている場合、終了時に保存ダイアログは表示されません。

また、文書の内容を編集した後、その Workbook オブジェクトの
Saved プロパティを True にしていた場合、実際には未保存であっても
変更無しとして扱われるため、保存確認のダイアログは表示されません。



> C#で、Excelのsheetに表示された画像を削除したいのですが
Shape オブジェクトの Delete メソッドを呼び出してみてください。

> どのようにすればよいのでしょうか。
必要なコードが分からない場合には、マクロの記録を試してみてください。
生成される VBA コードから、C# に必要なコードをある程度推測できるかと思います。

2007 よりも前のバージョン、つまり Excel 97, 2000, 2002, 2003 の場合には
 [ツール]メニューの[マクロ]-[新しいマクロの記録]
をクリックした後、手動で画像を削除してから、[記録終了]をクリックします。

その後、[Alt]+[F11]キーでモジュールを表示してみると、
 ActiveSheet.Shapes("Picture 1").Select
 Selection.Delete
のような VBA のコードが生成されていることを確認できるはずです。

手動操作の記録なので、Select/Selection 操作が冗長ですが、
上記から、「Shapes コレクションから、Shape オブジェクトを選択」し、
「その選択されたオブジェクトの Delete メソッドを呼ぶ」という事が
分かります。
この場合、選択されたオブジェクトとは、Shapeの事ですね。


なお、Excel 2007 の場合には、
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_01_2007.html
の手順で同様の機能を利用できるはずですが、残念ながら 2007 では
Shapes 関連の操作が記録されないので、今回はあまり役に立ちません。
引用返信 編集キー/
■44755 / inTopicNo.3)  Re[2]: C#でのExcel操作#2
□投稿者/ 初心者 (92回)-(2009/12/17(Thu) 10:46:51)
魔界の仮面弁士 さん
ありがとうございます。

No44694 (魔界の仮面弁士 さん) に返信
> (Excelの)Applicationオブジェクトにある、DisplayAlerts プロパティが
> False になっている場合、終了時に保存ダイアログは表示されません。
>
> また、文書の内容を編集した後、その Workbook オブジェクトの
> Saved プロパティを True にしていた場合、実際には未保存であっても
> 変更無しとして扱われるため、保存確認のダイアログは表示されません。

Falseに設定していました。


>
>
>>C#で、Excelのsheetに表示された画像を削除したいのですが
> Shape オブジェクトの Delete メソッドを呼び出してみてください。
>
>>どのようにすればよいのでしょうか。
> 必要なコードが分からない場合には、マクロの記録を試してみてください。
> 生成される VBA コードから、C# に必要なコードをある程度推測できるかと思います。
>
> 2007 よりも前のバージョン、つまり Excel 97, 2000, 2002, 2003 の場合には
>  [ツール]メニューの[マクロ]-[新しいマクロの記録]
> をクリックした後、手動で画像を削除してから、[記録終了]をクリックします。
>
> その後、[Alt]+[F11]キーでモジュールを表示してみると、
>  ActiveSheet.Shapes("Picture 1").Select
>  Selection.Delete
> のような VBA のコードが生成されていることを確認できるはずです。
>
> 手動操作の記録なので、Select/Selection 操作が冗長ですが、
> 上記から、「Shapes コレクションから、Shape オブジェクトを選択」し、
> 「その選択されたオブジェクトの Delete メソッドを呼ぶ」という事が
> 分かります。
> この場合、選択されたオブジェクトとは、Shapeの事ですね。
>
>
> なお、Excel 2007 の場合には、
> http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_01_2007.html
> の手順で同様の機能を利用できるはずですが、残念ながら 2007 では
> Shapes 関連の操作が記録されないので、今回はあまり役に立ちません。

試してみたいと思います。
丁寧な回答ありがとうございました。
引用返信 編集キー/
■44774 / inTopicNo.4)  Re[3]: C#でのExcel操作#2
□投稿者/ 初心者 (95回)-(2009/12/17(Thu) 17:00:12)
解決済みです。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -