0

二度目に質問させて頂きます。よろしくお願いします。

標準ライブラリ【Excel操作(値のみペースト)】を使用して、同じ様式ながら複数ファイル存在するINPUTファイル(Excel)から、
中間ファイル(Excel)へ表構造を変更しつつ値を集約しようと以下のスクリプト(一部抜粋)を記述しました。

===================

On Error GoTo Label1
  '構造がRangeでないクリップボード上のデータをペーストする
  '引数: Format = 1(visPasteText) ならば、ANSIテキスト
  worksheet.PasteSpecial 1, False, False
On Error Goto 0

Label1:
  '構造がRangeであるクリップボード上のデータをペーストする
  '引数: Paste = -4163(xlPasteValues) ならば、値のみ
  worksheet.range(pcell).Pastespecial -4163

===================

そもそも悩みが複数あり、手が止まっています。なんとか解決法をご教授頂けませんでしょうか。
以下に4点、補足します。

① INPUTファイルはファイル毎に記入者が異なり、各々が色んなセルへ好きなルールで様々な書式設定をしています。
  これを中間ファイルへコピペすると、中間ファイル側のスタイルに登録された書式が上限を超えてしまってペースト操作にエラーが生じました。
  元々書式は不必要なため、中間ファイルへは「値のみ」の貼り付けをしようと思います。

② INPUTファイル側で、ある記入者だけは独自のマクロを組み込んでいてファイル拡張子が「.xlsx ⇒ .xlsm」になっています。
  そのためか、GUIで手動操作による範囲セルのコピペを試しても「形式を選択して貼り付け」に表示される選択肢が他ファイルと異なります(キャプチャ参照)。
 「Microsoft Excel ワークシート(コード)オブジェクト」「テキスト」等が選択肢になっています。

③ ②をコピーした状態で、WinActorからPaste=xlPasteValuesを実行しても書式は維持されてペーストされてしまったことから
  上記のスクリプトへ試行錯誤を始めるに至ります。

④ 別途、後続では標準ライブラリ【Excel操作(マクロ実行)】による、ActiveWorkbook.Styles(i).Delete のようなVBAも配置しています。
  ですが最小単位毎にノード配置しても、マクロ実行時間が長く、その間マウスポインタが青いくるくるになったり
  Excelウィンドウ名に「応答なし」と表示されて、シナリオ実行者を不安にさせそうなので最良の策とも言い難く思ってます。

WinActor側のスクリプトをどう直せばよいか、ご指導頂けませんでしょうか。よろしくお願い致します。

anothersolution 回答した質問
回答とコメントは、会員登録(無料)で閲覧できるようになります。