【質問】
Excelファイルにおいて、特定の列を削除したい。
削除対象の列は、
A列、C列、F列、J ~ M列
である。
列を削除する方法として、アプリの操作やショートカットキー以外での対処方法はあるか。
【回答】
列の削除については、Excelアクションではなく、OpenDocumentスプレッドシートアクションを使用します。
(詳細は「http://automate.sct.co.jp/knowledge/1127/」を参照)
指定列の削除は「OpenDocumentスプレッドシート」アクションで可能ですが、注意点がございます。
前にある列から削除していくと、意図しない列が削除されてしまいます。
理由としましては、「A」列を削除すると、前までは「B」列だったものが「A」列に移動し
後続の列のインデックスが変化するためです。
列の削除によるインデックスの変化を回避しつつ設定するには、必ず後ろのほうの列から削除します。
以下、デスクトップ上にあるBook1.xlsxのSheet1から、指定列を削除するサンプルです。
(下記のコードをそのままコピーし、タスクビルダーに貼り付けます)
<AMODS SESSION="OPENDOCSession1" WORKBOOK="%USERPROFILE%\Desktop\Book1.xlsx" />
<!--列を後ろから消せば、削除対象列のインデックスが変化しないので非常に楽-->
<AMODS ACTIVITY="delete_row_column" SESSION="OPENDOCSession1" CONTENTTYPE="Delete" ROWCOLUMNTYPE="Column" INDEX="J" TOTALCOUNT="4" />
<AMODS ACTIVITY="delete_row_column" SESSION="OPENDOCSession1" CONTENTTYPE="Delete" ROWCOLUMNTYPE="Column" INDEX="F" TOTALCOUNT="1" />
<AMODS ACTIVITY="delete_row_column" SESSION="OPENDOCSession1" CONTENTTYPE="Delete" ROWCOLUMNTYPE="Column" INDEX="C" TOTALCOUNT="1" />
<AMODS ACTIVITY="delete_row_column" SESSION="OPENDOCSession1" CONTENTTYPE="Delete" ROWCOLUMNTYPE="Column" INDEX="A" TOTALCOUNT="1" />
<AMODS ACTIVITY="close_workbook" SESSION="OPENDOCSession1" />