- ベストアンサー
エクセルの列の非表示、削除について
エクセルの列の編集の仕方で困っています。 1~5000くらいある列を1は表示して、2~4非表示または削除、5は表示とこれを続けております。 5列間隔で最初と最後の列だけ表示し真ん中の列は削除をしておりこれを繰り返しマウスで作業しています。もっと簡単にできるやり方はないでしょうか?よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
数が多くて手作業の操作では、面倒ということか。 ーー マクロの記録モードにして、1単位の操作をして、どういうコードになるか見て、列の指定のルールを計算式かで表して 繰り返しをするなどで出来る ーー または 空き行(第1行目に列挿入しても良い)に、1,5,9,13,17・・列に1を立てて、その列だけ削除するプログラムにする。 下記。 ーー A列に1、B,C,D列空白、A1:D1をコピー、E1:最終列を範囲指定ー貼り付け で中3列あけて1が入れられる。 最終列まで範囲指定はA1:D1をコピー E1をクリックSHIFTキーを押しながら名前ボックスにAZ1(最右列、最終列「)など入力し、ENTERキーを押す。 その後直ぐ編集ー貼り付け ーーー VBAでは第1列目に1が入った列を列削除するコード Sub test01() Range("A1:IV1").Select '最終列まで範囲指定 Selection.SpecialCells(xlCellTypeConstants, 23).Select '定数(この場合1)のセルを範囲指定 Selection.EntireColumn.Delete '選択列を削除 End Sub ーー これを操作でやる場合は 第1行を全列選択しておく(=行番号1の(左端)部でクリック) 変数ージャンプーセル選択ー定数 これで1のセルだけ選択される 編集ー削除ー列全体 ーー 上記の1は1でなくても1,2,3・・でも良いと思うので、A1:D1(A1だけ1)を範囲指定して、+ハンドルを引っ張る方法でもできると思う。
- KURUMITO
- ベストアンサー率42% (1835/4283)
例えばシート1にデータがあるとして、5000くらいある列とありますが行のことと判断して、次のようにしてはどうでしょう。 例えばシート1のデータが1行目は項目名などでJ列まであるとします。2行目から下方のデータをお望みのような形で表を別のシートに作るとします。 別のシートでは1行目のJ列まで項目名を入力します。 次にA2セルには次の式を入力します。 =IF(INDEX(Sheet1!$A:$J,(ROW(A1)-1)*4+2,COLUMN(A1))="","",INDEX(Sheet1!$A:$J,(ROW(A1)-1)*4+2,COLUMN(A1))) このA2セルを右クリックしてコピーします。 その後に「名前ボックス」(表の右端上にA2と表示されているところ)に例えばA2:J5000と入力します。 それによってA2からJ5000までのセル範囲が選択されます。 そこで右クリックで「貼り付け」を行います。 これでお求めの表が別のシートに表示されます。 なおシート1の1行目からのデータをお望みのとおりに表にするにはA1セルへの入力の式は次のようにします。 =IF(INDEX(Sheet1!$A:$J,(ROW(A1)-1)*4+1,COLUMN(A1))="","",INDEX(Sheet1!$A:$J,(ROW(A1)-1)*4+1,COLUMN(A1)))