FAQ-367 ワークシートを何行か毎または何列か毎に削除するには?

最終更新: 2018/08/09

nごとの列・行を削除する

列・行の削減ダイアログを利用する

列を削除するには、ワークシート: 列の削減を選択します。これでX-Functionのwreducecolsが開きます。

例えば、以下のスクリーンショットのように設定すると、アクティブなワークブック中の列を5列ごとに削除します(5列目から削除を開始し、1列削除し4列スキップ)。

FQA367 Reduce Columns.png

または、コマンドウィンドウで以下のスクリプトを実行します。

wreducecols skip:=4 start:=5;

行を削除するには、ワークシート: 行の削減を選択します。これでX-Functionのwreducerowsが開きます。

例えば、以下のスクリーンショットのように設定すると、アクティブなワークブック中の行を4行ごとに削除します(4列目から削除を開始し、1列削除し3列スキップ)。

FQA367 Reduce Rows.png

または、コマンドウィンドウで以下のスクリプトを実行します。

wreducerows nrows:=1 skip:=3 start:=4;

ループ処理を利用する:

ワークシートをアクティブにして、スクリプトウィンドウ (メニュー: ウィンドウ: スクリプトウィンドウ)を開き、以下のコードをコピー&ペーストし、エンターを押します。

列を削除:

// 上から数え始めて、n番ごとの列を削除します
int ndel = 3; // 必要に応じて数字を変更してください
 
int ncols = wks.ncols;
int nlast = ncols - mod(ncols, ndel);
 
// 下から上に向けて削除していきます
for(int ii = nlast; ii > 0; ii -= ndel)
{
   delete wcol(ii);
}

行を削除:

// 上から数え始めて、n番ごとの列を削除します
int ndel = 3; // 必要に応じて数字を変更してください
 
int ncols = wks.ncols;
int nlast = ncols - mod(ncols, ndel);
 
// 下から上に向けて削除していきます
for(int ii = nlast; ii > 0; ii -= ndel)
{
   delete wcol(ii);
}

2 指定ダイアログを利用してnごとの列・行を削除する

  1. ワークシートをアクティブにして、メインメニューから編集: 選択を選びます。
  2. 開いた選択ダイアログで、モードのドロップダウンリストからN列選択しM列をスキップを選び、NMを指定します。
  3. テスト--条件に合えば選択ボタンをクリックして検索された外れ値を選択します。非表示をクリックしてダイアログを閉じます。
  4. ワークシート上で右クリックし、列を選択して削除を選びます。

例えば、以下のスクリプトはアクティブウィンドウの列を5列ごとに削除します(5列目から削除を開始し、1列削除し4列スキップ)。

FQA367 Select.png

テスト - 条件に合えば選択をクリックし、非表示ボタンを押します。ワークシートに戻り、右クリックで列を選択して削除を行います。これで5番目の列ごとに削除が行われます。

ワークシートクエリダイアログを利用してnごとの列・行を削除する

  1. ワークシートをアクティブにして、ワークシート: ワークシートクエリからワークシートクエリダイアログ を開きます。
  2. 選択条件ボックスに mod(i,3)==0 (mod function参照) と入力します。これは、3行毎に選択するということです。そして、「テスト--条件に合えば選択」ボタンをクリックして、これらの行を選択します。
    FQA367 Worksheet Query.png
  3. このダイアログを閉じ、右クリックメニューから削除を選択して、ワークシートからこれらの行を選択します。

キーワード: 削除, 削減

必要なOriginのバージョン: 2016 SR0以降