Delphi を使用して、いくつかのデータ値を含む Excel シートを作成し、次にグラフを作成します。
WChart := ((ExcelApplication1.Workbooks[1].ActiveSheet) as _Worksheet).Shapes.AddChart(xl3DPie,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam).Chart;
チャートはシート上に正しく作成されます。今、私はそれを次のような新しいシートに移動したいと思います:
WChart.Location(xlLocationAsNewSheet, EmptyParam);
これにより、アクセス違反が発生します。
私はよくグーグルで検索しましたが、Delphi を利用する例は見つかりませんでした。他のすべての言語 (VBA など) は、私のコードと同等のことを行っています。
どんな助けでも感謝します。
編集:
AV をトリガーする行のアセンブリ コードは次のとおりです。
WChart.Location(xlLocationAsNewSheet, EmptyParam);
lea eax,[ebp-$0000019c]
call @IntfClear
push eax
lea eax,[ebp-$000001ac]
call EmptyParam
push dword ptr [ebp-$000001a0]
push dword ptr [ebp-$000001a4]
push dword ptr [ebp-$000001a8]
push dword ptr [ebp-$000001ac]
push $01
mov eax,[ebp-$14] // [ebp-$14] is WChart value
push eax
mov eax,[eax]
call dword ptr [eax+$00000198] // Supposed to call Location()
call @CheckAutoResult