|
■No43519 (msnr さん) に返信 > VSTOの勉強中です。 > 今まではVBAを使っていたのですが、そろそろVSTOに転向しようと > 思うのですがオブジェクトモデルを見ても分かりにくく困っています。 > 以下のコードですが、簡単な内容で > ワークブックを開くとA列の1〜5行目まで各々の行数が入力され > 閉じる直前にコンテンツをクリアするものです。 > > > namespace ExcelWorkbook1 > { > public partial class Sheet1 > { > private void Sheet1_Startup(object sender, System.EventArgs e) > { > long i = 1; > > MessageBox.Show("Try VSTO"); > do > { > this.Application.Cells[i , 1]=i+"行"; > i++ ; > }while(i <= 5); > } > > private void Sheet1_Shutdown(object sender, System.EventArgs e) > { > /// ここでA列1〜5行の文字列をクリアしたいのです。 > } > > 3行上でクリアしたいのですが、ループ処理を使わずクリアしたいのです。 > いわゆるVBAで言う > Excel.Worksheets1.Cells(Worksheets1.Cells(1,1),Worksheets1.Cells(1,5)).Clear > や > Excel.Worksheets1.Range("A1:A5").Clear > > の様な記述はどの様にすれば良いのでしょうか? > > 経験浅く、分かり難い質問ですが識者の皆様、ご教授下さい。 > > よろしくお願いいたします。 ループを使いたくないのはなぜでしょう?行数が多くなるからでしょうか?私も聞くことが多い身なので回答はないのですが、もし文字数 を気にするのでしたら > do > { > this.Application.Cells[i , 1]=i+"行"; > i++ ; > }while(i <= 5); は for(int i = 0; i <= 5; i++) { this.Application.Cells[i , 1]=i+"行"; } という書き方があります。 while(i <= 5) { this.Application.Cells[i , 1]=i+"行"; i++ ; } でもいい。ほんの少しですが文字数減らせます。たわごと程度の参考にどうぞ。
|