Excelでコンボボックスを削除し、VSTO Addinを使用してワークブックを保存しようとしている場合は、Excel Crashing
こんにちは、
私は、次のアクションを実行しますVSTOアドインを作成しました.
スタートアップのアドインでステップ1.私はExcelのセル内のコンボボックスを作成しています.
ステップ2は、ステップ1で追加したコンボボックスを削除するリボンコントロールで、ボタンのクリックで削除ボタンを追加しました.
ステップは、クリックのワークブックの保存や保存のためのボタンを追加します3.ます.
Excelの保存のクリック時にクラッシュし、Excelを再起動して取得されます.
ここで私は、コードスニペットを添付しています.
publicpartialclassThisAddIn
{
staticExcel.WorksheetSheet;
privatevoidThisAddIn_Startup(objectsender、System.EventArgse)
{
シート= Globals.ThisAddIn.Application.ActiveWorkbook.ActiveSheet.
varoleObject= CreatecomboBox().
}
privatevoidThisAddIn_Shutdown(objectsender、System.EventArgse)
{
}
///<要約>
///Deletethepagefilteradded
///
publicstaticvoidDeletePageFilters()
{
用(INTI= Globals.ThisAddIn.Application.ActiveWorkbook.ActiveSheet.Shapes.Count. I>0; I-)
{
Excel.ShapeoleObj= Globals.ThisAddIn.Application.ActiveWorkbook.ActiveSheet.Shapes.Item(I).
もし(oleObj.Name.Contains( "コンボ"))
{
してみてください.
{
oleObj.Delete();
System.Runtime.InteropServices.Marshal.ReleasecomObject(OLEObjと).
}
キャッチ(Exceptionex){}
}
}
}
///<要約>
///Createthepagefilter
///
publicstaticExcel.ShapeCreatecomboBox()
{
Excel.Shapeocombo= NULL;
してみてください.
{
Excel.Rangecell= Globals.ThisAddIn.Application.ActiveWorkbook.ActiveSheet.Range [ "A1"、 "A1"].
ocombo= Globals.ThisAddIn.Application.ActiveWorkbook.ActiveSheet.Shapes.AddOLEObject( "Forms.comboBox.1"、Type.Missing、Type.Missing、
Type.Missing、Type.Missing、Type.Missing、Type.Missing、
cell.Left、cell.Top、40、cell.Height).
}
キャッチ(System.Exceptionex)
{
}
returnocombo;
}
イベントログ
FaultingApplicationName:Excel.exe、version:16.0.13127.21624、タイムスタンプ:0x6093B3CA
FaultingModuleName:vbe7.dll、version:0.0.0.0、タイムスタンプ:0x5FF762B0
ExceptionCode:0xc0000005
FaultOffSet:0x0000000000250081
Faultingprocessid:0x69c4
Faultingapplicationstarttime:0x01d76368d4ad66cc
FaultingApplicationPath:C:\ProgramFiles¥MicrosoftOffice¥Root¥Office16¥excel.exe
FaultingModulePath:C:\ProgramFiles\CommonFiles\MicrosoftShared\VBA\VBA7.1\vbe7.dll
ReportId:99cb77c6-5e34-4472-a469-3295d1136167
FaultingPackageFullName:
FaultingPackage-RelativeApplicationID:
返信リスト(回答:3)
申し訳ありませんが、私はイデリアスの外にいます.他のユーザーが役立つかどうかを確認しましょう.
やあ、
グラフィックスハードウェアアクセラレーションを無効にしてみてください.
1-Excelを開く
2-ファイルに移動します
3-オプション
4-Advanced.
6-グラフィックスハードウェアアクセラレーションボックスを無効にしてください
7-ok.
この情報が役立ちます.
応答3# ->にスキップ1 #AjithPaこんにちはGustavo、
お返事をありがとうございます.私はあなたが提案した上記の解決策を試しました.しかし、まだExcelは保存しようとしているときにクラッシュしています.
以下は私がワークブックを保存するために使用しているコードです.
privatevoidsave_click(ObjectSender、RibbonControlEventargse)
{
を試してみてください{
Globals.ThisAddin.Application.ActiveWorkbook.Save();
}
キャッチ(例外)
{
投げる;
}
}