お世話になります。
vb.net2010で、Windows8.1上のexcel2013を操作するアプリケーションを開発しております。
特定のセルに入力規則のリストを設定する処理を記述しております。
しかしながら以下を実行後、バックグランドプロセスにEXCELのプロセスが残ってしまいます。
何かが解放されていないと思われますが、何が解放されていないのかわからない状態で困っております。
恐れ入りますが、何が原因かおわかりになる方はご教示いただけないでしょうか。
参照内容は以下になります。
参照名:Microsoft.Office.Interop.Excel
種類:.NET
バージョン:14.0.0.0
コードは以下になります。
Imports Microsoft.Office.Interop
Dim xlsApp As Excel.Application = Nothing
Dim xlsbooks As Excel.Workbooks = Nothing
Dim xlsbook As Excel.Workbook = Nothing
Dim xlsSheets As Excel.Sheets = Nothing
Dim xlsSheet As Excel.Worksheet = Nothing
Dim xlsRange As Excel.Range = Nothing
Dim xlsValidation As Excel.Validation = Nothing
Try
xlsApp = New Excel.Application()
xlsApp.Visible = False
xlsbooks = xlsApp.Workbooks
xlsbook = xlsbooks.Open(strWeeklyReportPath)
xlsSheets = xlsbook.Worksheets
xlsSheet = DirectCast(xlsSheets(1), Excel.Worksheet)
xlsRange = xlsSheet.Range("B2")
xlsRange.Validation.Add(Excel.XlDVType.xlValidateList, Formula1:="東京、大阪、名古屋")
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsRange)
Finally
If xlsValidation IsNot Nothing Then
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsValidation)
End If
If xlsRange IsNot Nothing Then
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsRange)
End If
If xlsSheet IsNot Nothing Then
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsSheet)
End If
If xlsSheets IsNot Nothing Then
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsSheets)
End If
If xlsbook IsNot Nothing Then
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsbook)
End If
If xlsbooks IsNot Nothing Then
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsbooks)
End If
If xlsApp IsNot Nothing Then
xlsApp.Quit()
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsApp)
End If
GC.Collect()
End Try
ご教示いただけますようお願い申し上げます。
以上宜しくお願い申し上げます。
No.3ベストアンサー
- 回答日時:
> ご回答ありがとうございます。
申し訳ございませんが、具体的にどのようなコードかご教示いただけますでしょうか。xlsRange.Validation.Add(Excel.XlDVType.xlValidateList, Formula1:="東京、大阪、名古屋")
↓
xlsValidation = xlsRange.Validation
xlsValidation.Add(Excel.XlDVType.xlValidateList, Formula1:="東京、大阪、名古屋")
No.2
- 回答日時:
解放する処理をすべて無しにして実行した時に
タスクマネージャに複数のExcelが残るのなら
参照の仕方がマズイのも一因かも。
Excel.Worksheet
とか。
ご参考まで。
No.1
- 回答日時:
> xlsRange.Validation.Add(Excel.XlDVType.xlValidateList, Formula1:="東京、大阪、名古屋")
xlsRange.Validationが解放できるような書き方に直してみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 4 2023/05/26 10:43
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) Excel VBA メール作成について 本文の中にExcel でコピーした図を上下に2つ 貼り付けを 2 2023/06/14 01:48
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
デザイン時のVisible=Falseは実...
-
PowerPointで時計表示
-
if(1){...}とはどういうことで...
-
jQuery ui Datepicker 明日以降...
-
VBA SORT Applyでエラー
-
VB.netでタイマーがスタートし...
-
初心者です。gulpでコンパイル...
-
JSPの処理の途中で、JavaScript...
-
VBA ステータスバー DoEvents
-
ラベルの色がかわってくれない
-
オーバーライドについて。
-
GoTo文とかSelect文の処理の仕...
-
JavaScriptでショートカットキ...
-
system関数を使用時にDos窓を最...
-
乱数の表示
-
CreateFile、CloseHandleの繰り...
-
VB.netの重複データ数カウント...
-
Excel VBA にて JavaScript の...
-
javascriptでsjisの文字列からu...
-
1つのVBAコードをすべてのコア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
以下のコードを実行しても、オ...
-
JSPの処理の途中で、JavaScript...
-
if(1){...}とはどういうことで...
-
1つのVBAコードをすべてのコア...
-
VBA ステータスバー DoEvents
-
〔Excel:VBA〕マクロの実行が異...
-
jQuery ui Datepicker 明日以降...
-
デザイン時のVisible=Falseは実...
-
VBA SORT Applyでエラー
-
リクエスト結果が一瞬しか表示...
-
C#でボタン名を変更しても動く
-
PowerPointで時計表示
-
innerHTMLなどの反映タイミング
-
javascriptで最初のところに戻...
-
初心者です。gulpでコンパイル...
-
onbeforeunload と aタグの hre...
-
ラベルの色がかわってくれない
-
エクセル VBA タイマー動作 の...
-
JavaScriptで、実行するたび値...
-
Excel VBA にて JavaScript の...
おすすめ情報
ご回答ありがとうございます。申し訳ございませんが、具体的にどのようなコードかご教示いただけますでしょうか。
直後にSystem.Runtime.InteropServices.Marshal.ReleaseComObject(xlsRange.Validation)を入れてみましたが、解放されませんでした。またSystem.Runtime.InteropServices.Marshal.ReleaseComObject(Validation)ではエラーになってしまいます。
恐れ入りますが、宜しくお願い申し上げます。