私はSTAThreadが正確に何をするのか(何であるか)をよく知らないので、私の質問が適切に述べられているかどうかさえわかりません。
Excelの範囲の内容をクリップボードにコピーするBackgroundWorkerスレッドで実行されているプロセスがあります(Excel.Range.Copy()
)。コピー後、クリップボードの内容にアクセスしてテキストファイルに書き込むことができる必要がありますが、BackgroundWorkerから直接クリップボードにアクセスできないようです(BackgroundWorkerから使用Clipboard.GetText()
してそのテキストをテキストファイルに書き込もうとすると、別のテキストファイルでCtrl-Vを手動で実行し、C#プロセスによってExcel範囲からコピーされたばかりのコンテンツを貼り付けることができますが、テキストは渡されません。
また、プロセスのステータスを示すProgressBarの使用を容易にするために、このプロセスをBackgroundWorkerで実行していることにも言及する必要があります。したがって、ProgressBarを使用して、BackgroundWorkerを使用せずにクリップボードのコンテンツにアクセスできるソリューションがある場合は、絶対に歓迎します。ありがとう!