問題タブ [excel-automation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
371 参照

vb.net - VB.NET アプリから Excel を呼び出す場合、Excel をアプリの前に表示するにはどうすればよいですか?

Microsoft.Office.Interop.Excel を使用してスプレッドシートを開き、そこにデータを送り込み、ピボット テーブルのデータを更新して、ユーザーにスプレッドシートを表示する VB.NET アプリケーションがあります。

コードは非常に単純です (エラー処理は示されていません)。

このコードを実行すると、呼び出し元のアプリの背後で Excel が開かれ、データ接続を更新しているため、小さな Excel の [SQL Server ログイン] ダイアログも呼び出し元のアプリの背後に表示されるため、ユーザーは ALT を実行する必要があります。 +TAB で Excel に移動するか、タスク バーで Excel をクリックします。どちらもユーザーにとって優れたエクスペリエンスではありません。呼び出し元のアプリの前にログイン ダイアログが表示されるようにします。

これを達成する方法を誰かが提案できますか? Visible & UserControl プロパティの設定を RefreshAll の後に移動しようとしましたが、違いはありません。

乾杯、

クリス。

0 投票する
1 に答える
5700 参照

vba - VBA を使用したメッセージ ボックスの自動クリック

会社のアドインのテストケースを自動化しています。

テストケースの 1 つで、ワークブックをローカル マシンに保存した後、ワークブックを閉じようとすると、[はい] をクリックする必要があります - 編集したデータをデータベースに保存します。[いいえ] - 編集を破棄するか、[キャンセル] をクリックします。単にメッセージ ボックスを閉じます。

sendKeys を使用してみましたが、うまくいきませんでした。

例: VBA コードで [いいえ] をクリックするために、次のようにタブを送信してキーを入力しようとしました。

さまざまな時間値を試してみましたが、まだ成功しませんでした。誰かがこれを手伝ってくれたらうれしいです。

前もって感謝します!:)

更新:今のところ、私はこれをやっています:

しかし、メッセージ ボックスのウィンドウ オブジェクト参照を取得する方法はありますか? またはとにかくワークフローに固執するには: ワークブックを編集 -> 保存 -> 閉じてみる -> データベースへの変更を破棄/コミットすることを選択しますか?

注:データベースへの変更を破棄/コミットするということは、データが更新されるサーバーを意味します。Excel は、ユーザーのための単なるインターフェイスです。Excelだけを保存したくないのですが、サーバー上で破棄/保存の変更を呼び出す操作も...

0 投票する
1 に答える
424 参照

vba - VBA で条件付き書式のオプション属性をチェック中にエラーが発生しました

2 つの VBA サブルーチンを作成しました。

1) 条件付き書式を設定する (オプションとして、演算子、式 1 および式 2 を使用)

2) シートで条件付き書式 (CF) を確認し、各 CF の属性を印刷するには:

ここで、条件付き書式を設定したい場合は、関数呼び出しを行うことにより、「値が 2 より大きいセルのセルは RGB(198, 239, 206) で色付けされ、フォントは RGB(255, 255, 0) である必要があります」とします。

If IsMissing(cellRange.FormatConditions(i).Formula2)checkConditionalFormattingsOnSheetでエラーが発生しています:

エラー: アプリケーション定義またはオブジェクト定義のエラー HelpContext: 1000095、ErrorId: 1004

「Is Nothing」、「IsNull()」、Formula2 のパラメーターをそれぞれ Nothing および Null として渡すなど、他のオプションを試しましたが、うまくいきませんでした。

事前にお時間をいただき、ありがとうございます。:)

0 投票する
1 に答える
5233 参照

excel - アドインをインストールした後、Excel で「1」個の引数を使用して「Open」を呼び出す例外: ...」

私は、当社のアドインをExcelにインストールし、ライブラリファイル(ライブラリマクロサブルーチンと関数を含むlibrary.xlsm)をロードするExcelオートメーションを自動化しようとしています。この後、テストごとに、対応する test.xlsm ファイルを読み込み、マクロを実行します。これはすべて、powershell (V3) を使用して行っています。私のスクリプトは、あるマシンで呼び出され、別のリモート マシンで実行されます。

これは私がアドインをインストールする方法です:

PS: マクロのヘルパー関数が C# コードを呼び出すため、.dll ファイルを追加しています。

ただし、これらの xlsm ファイルを開くと、次のエラーが表示されます。

"1" 個の引数を指定して "Open" を呼び出し中に例外が発生しました: "Microsoft Excel はファイル 'D:\ABC\XYZ\workspace\library.xlsm' にアクセスできません。いくつかの理由が考えられます: ファイル名またはパスが存在しません。ファイルは別のプログラムによって使用されています。保存しようとしているブックは、現在開いているブックと同じ名前です。」C:\Users\Serviceadmin\AppData\Local\Temp\hudson.ps1:94 において char:3 + $libraryBook = $excel.workbooks.open("$xlLibraryPath\$xlLibraryFileName"); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : ComMethodTargetInvocation

ファイルのパスが正しいにもかかわらず、上記のエラーが発生します。これは、powershell を使用してファイルを開く方法です。

次のことを確認しました:
1. 必要なマシンに Excel がインストールされている - はい、Excel 2013
2. xlsm ファイルのパス - すべてが存在する
3. アドインが正常にインストールされている

私が見逃しているものはありますか?

前もって感謝します!:)

0 投票する
1 に答える
7106 参照

python - Python - Excel ファイルの異なるシートを個々の Excel ファイルとして保存する

初心者 : 100 を超える異なるシートを含む Excel ファイルがあります。各シートには、いくつかの表とグラフが含まれています。

すべてのシートを新しい Excel ファイルとして保存したいと考えています。

多くの python コードを試しましたが、どれも機能しませんでした。

これを手伝ってください。ありがとう!

編集1:コメントに応えて、これは私が試したものです:

正確に言うと、問題はテーブルとチャートのコピーに来ています。

0 投票する
1 に答える
808 参照

c# - 見出し行を除いて、 Auto Filter の後に表示されている行を削除するにはどうすればよいですか?

Excel Interop では、 a を設定した後Range.Autofilter()、最初の行を除くすべての表示行を削除する必要があります。最初の行はシートの見出し行なので。ありがとう 。

0 投票する
1 に答える
1261 参照

c# - Visual Studio C# の Properties.Settings.Default の問題

ここで私が直面している問題は、Excel 用の COM とオートメーション アドインを組み合わせて構築していることです。作成したオートメーション アドイン クラスで Properties.Settings.Default にアクセスしようとすると、COM アドインが構成フォームを介して保存された値を返す場合でも、プロジェクトの既定値として設定した値が表示されます。 .

すべてのクラスは同じプロジェクト内にあり、同じ名前空間にあり、構成フォーム、COM アドイン、およびリボンのクラス ファイルはすべて、更新された Properties.Settings.Default 値にアクセスできます。オートメーション アドインと静的クラス (すべての重労働を処理する) は、更新された値にアクセスできません。

COM アドイン:

リボン:

形:

オートメーション:

最後に、静的クラス:

私が考えることができるのは、どういうわけか設定の 2 つ以上のインスタンスが作成されているということだけです。これを解決する方法について誰かがアイデアを持っているなら、それは素晴らしいことです。

EDIT:もう少し遊んでみると、COMアドインはロード時に保存された値のみを見て、次にオリジナルを見るようです。リボンはいつでも設定を見ることができます。

EDIT 2:解決して、将来の参考のために回答を入れてください。2日間の制限が終了すると、回答としてマークされます。