- - PR -
Excelシートのセルを変数で指定したいのですけれど
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-07-04 15:15
VB.net(2003)でExcelシートに罫線を
xlSheet.Range("A30:K30").Borders(7).LineStyle = 1 のような記述で引きたいのですけれど "A30:K30" を変数で指定したいのですけれど、思ったように指定出来ません。 どのようにしたら良いのでしょうか? | ||||||||||||
|
投稿日時: 2006-07-04 15:23
"A30:K30" はリテラル文字列です。 変数で表すと、 Dim s As Strng = "A30:K30" です。 おそらく、そんなことを伺っているのではないかと思いますが、 上記の文章からですと、'どのように' 指定したいのかがわからないです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-07-04 15:37
説明不足で申し訳ありません。
"A30:K30"を Dim s As Strng (sはA30の変数) Dim x As Strng (xはK30の変数) のように定義した変数 s x に プログラムでセルを指定して、罫線を引くようにしたいのですけれど。 初心者の為、うまく説明が出来ないのですけれど、 よろしくお願いします。 | ||||||||||||
|
投稿日時: 2006-07-04 15:54
上記のようには指定する方法は知りませんが、
というふうに指定できますよ。 | ||||||||||||
|
投稿日時: 2006-07-04 16:04
Strng とは文字列のことでしょうか? 文字列であるならば、結局のところ、 Dim s As String = "A30" Dim x As String = "K30" Dim xlRange As Excel.Range = xlSheet.Range(s & ":" & x) という意味になっちゃいますけど、そんなことがしたいわけではないですよね? それと、
と書いてありますが、Excel へのアクセスは何で行っているんでしょうか? COM Interop (Microsoft Excel xx.x Object Library) の場合、
このような書き方は危険です。 メモリリークを起こし、Excel のプロセスが解放されなくなります。 # これは、何度か書かせて頂いていることですので、詳細は検索すれば見つかると思います。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-07-04 17:29
回答ありがとうございます。
MRComObject(xlSheet) 'xlSheet の解放 MRComObject(xlSheets) 'xlSheets の解放 MRComObject(xlBook) 'xlBook の解放 MRComObject(xlBooks) 'xlBooks の解放 MRComObject(xlApp) 'xlApp を解放 のような記述で解放はおこなっていますけれど、 xlSheet.Range("A30:K30").Borders(7).LineStyle = 1 このような記述で罫線を引くのは危険なのでしょうか? (検索をおこなったのですけれど、詳細がわからなかったので 参照先等 教えてください) また、 正しい罫線の引き方の参照先等 お手数ですけれど、教えてください。 | ||||||||||||
|
投稿日時: 2006-07-04 17:40
COM オブジェクトなのですから、Excel.Worksheet だろうと、Excel.Range だろうと同じことです。
これらと同様に、参照カウントをデクリメントしなければなりません。 # ところで、MRComObject というメソッドは、花ちゃんさんのサイトから引用したものですね? # コメントがあるので、何をしているのか大体わかりますが...
そういうわけで、他の COM オブジェクトと '同じ扱い' をするだけで良いです。 現状そうしているであろう、xlApp, xlBooks, xlBook, xlSheets, xlSheet のように、 参照を取り、System.Runtime.InteropServices.Marshal.ReleaseComObject メソッドで解放してください。 # 本題の、セルの位置指定の件は、あんなもので宜しかったのでしょうか...? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-07-04 17:51
本題の、セルの位置指定の件は、アドバイスを参考にさせて頂き
出来るようになりました。 ありがとうございました。 |