ワークシートにデータベースのデータを埋め込むExcelアドインを作成しました。また、スタイリングを追加し、FreezePanesを使用していくつかの行と列をロックします。"WindowクラスのFreezePanesプロパティを設定できません" Excel 2016(office 365)
worksheet.Activate();
worksheet.Application.ActiveWindow.FreezePanes = false;
worksheet.Application.ActiveWindow.SplitRow = 4;
worksheet.Application.ActiveWindow.SplitColumn = 11;
worksheet.Application.ActiveWindow.FreezePanes = true;
これは、すべてのエクセル2013分の2010での魅力のように働いたが、私は最近、2016(オフィス365)をエクセルに切り替え、私のExcelワークシートがフォアグラウンドにないときに、その後から、私にFreezePanesに問題がありました。私はインターネットを検索しました。私が遭遇する唯一の事は、アクティブシート上でフリーズパネルをプリフォームすることしかできないことです。フリーズパネルを設定する前にシートをアクティブにしていました。これは物理的に私のエクセルがフォアグラウンドに送られなかったにもかかわらず、2010年を凌駕しました。オフィス365から
Excelは、おそらく本当に私のExcelワークシートがフォアグラウンドで物理的になりたいけどworksheet.Activate()
助けにはならないと私はまた、次のコードを試してみました:
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll", SetLastError = true)]
static extern System.IntPtr FindWindow(string lpClassName, string lpWindowName);
string caption = oExcel.Caption;
IntPtr handler = FindWindow(null, caption);
SetForegroundWindow(handler);
をしかし、これはあまりにも動作しませんでした。どのような体は私にこの1つを助けることができますか?
明確にする:私のExcelのバージョンは2016バージョン1611(7571.2109の構築)
愚かな質問かもしれませんが、最初のブロックで 'worksheet'をどのように定義して設定しますか? –
私のプロセスの始めに、私はこのような現在のワークシートをキャプチャします: 'Excel.Application.ActiveSheet'このプロセスの間、このワークシートはもはやアクティブなものではないことがあります。いくつかの奇妙な理由で、シートをアクティブにすると多かれ少なかれアクティブになりますが、フォアグラウンドには送られずフリーズペインは失敗します... – DeniseMeander