![Microsoft Excel - 複数の列の行を特定の行数で分割する方法はありますか?](https://rvso.com/image/1711475/Microsoft%20Excel%20-%20%E8%A4%87%E6%95%B0%E3%81%AE%E5%88%97%E3%81%AE%E8%A1%8C%E3%82%92%E7%89%B9%E5%AE%9A%E3%81%AE%E8%A1%8C%E6%95%B0%E3%81%A7%E5%88%86%E5%89%B2%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%3F.png)
たとえば、私は顧客に関するさまざまな情報を含む列全体にわたるデータを扱っています。 そして、顧客数は 1,000 人にまで増えていきます。ここで、行を 400 のグループに分割し、新しいスプレッドシートに割り当てて、テキスト ソフトウェアにアップロードし、更新情報やその他のキャンペーンを送信できるようにする必要があります。
Name | email| Phone Guy [email protected] 50230
これを効率的に行う方法はありますか? 通常、手動で 400 までスクロールダウンし、残りの列を選択します。 しかし、これにはかなり時間がかかります。 何かアドバイスはありますか?
答え1
すでに 400 の明確なグループが空白などでマークされていない限り、この特定のタスク用の組み込み関数を見つけるのは難しいと思います。
ただし、マクロを使用して独自の関数を作成することはできます。
したがって、あなたの例を正しく理解していれば、セルを選択してから 400 行下に移動し、それらすべてとさらに 2 つの列を選択します。マクロでこれを実行する最も簡単な方法は次のようになります。
Sub select400()
selection.Resize(400, 3).Select
End Sub
次に、マクロ ウィンドウとオプションに移動するか、別のマクロの助けを借りて、このマクロにショートカットを割り当てることができます。
しかし、行数や列数を一定にしたくない場合はどうすればよいでしょうか。
その場合は、次のように、絶対値を入力ボックスと変数に置き換えることができます。
Sub select400()
Dim inpRows As Long, inpColumns As Long
inpRows = InputBox("How many rows to select?")
inpColumns = InputBox("How many columns to select?")
selection.Resize(inpRows, inpColumns).Select
End Sub
ただし、InputBox があるため、適切なエラー処理が必要です。ボックスに何か奇妙な内容 (または何も入力されていない内容) が入力されるとクラッシュします。
サンプル:
最初にこれも実行しました:
Sub setShortcut()
Application.OnKey "%{s}", "select400"
End Sub
ALT + sを押したときにマクロが実行されるように設定するには
もちろん、マクロで 400 を検索し、新しいワークシート/ワークブックに切り込み、データがなくなるまで新しいシートで処理を続けることで、自動化をさらに拡張できます。
少し技術的ですが、1、2 回のループで実行できます。