プロが教える店舗&オフィスのセキュリティ対策術

よろしくお願いします。

表で

<回答1 備考1 備考2> <回答2 備考1 備考2> <回答3 備考1 備考2> ・・・・・

というように回答列、備考1列 備考2列が交互に現れる表があります。

このシートの中から、備考1列 備考2列だけ削除したい場合、どうすれば一番簡単に削除できるでしょうか。

備考1列 備考2列を一つづつ選んで削除しないといけないでしょうか。

何十回も現れる場合、一つづつ選ぶと時間がかかります。


効率的なやり方を教えて頂ければと思います。

A 回答 (3件)

「備考の列を削除」ではなく「回答以外の列を削除」でも大丈夫でしょうか?


もし、それでよければ、次の操作をお試しください。
手順①③は詳しく説明していますが、それ以外の操作が分からない場合は、補足等で再質問してください。

【手順】
①「回答」の文字を検索して、すべて選択する。
②Cntl+0で選択した列を非表示にする。
③表示されている列(いらない列)を可視セルのみ選択して削除する。
④非表示になっている列を再表示する。

【①の説明】
「検索と選択」の「検索」で検索文字に「回答」を指定し「すべて検索」すると見つかったセルの一覧が表示されます。一番下までスクロールして、Shiftを押しながら最終行をクリックすると全て選択することができます。

【③の説明】
表示されているものを列で選択し、「検索と選択」から「条件を選択してジャンプ」で「可視セル」を指定します。その状態で、列番号の見出しの部分を右クリックして「削除」します。
    • good
    • 0
この回答へのお礼

回答ありがとうございます!

出来ました!

お礼日時:2016/06/07 15:34

こんにちは!



VBAになりますが一例です。
項目行は1行目にあるとします。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
マクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub Sample1() 'この行から//
Dim myFound As Range, myFirst As Range, myRng As Range
Set myFound = Rows(1).Find(what:="備考", LookIn:=xlValues, lookat:=xlPart)
If Not myFound Is Nothing Then
Set myFirst = myFound
Set myRng = myFound
Do
Set myFound = Rows(1).FindNext(after:=myFound)
If myFound.Address = myFirst.Address Then Exit Do
Set myRng = Union(myRng, myFound)
Loop
myRng.EntireColumn.Delete
End If
End Sub 'この行まで//

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

VBA難しいですね。

勉強したいと思います。

お礼日時:2016/06/07 15:34

1行挿入して回答列の上に「1」 備考列の上に「2」と入力して 3つのセル


を選択した状態で Ctrlを押しながら右方向にドラッグでコピー

後は範囲を選択した状態で [データ]→[並べ替え]
→[オプション]で[列単位]を選択して[OK]
→[行 1]を[昇順]で並べ替え

で回答列と備考列を別々に分けられます。
後は備考列を一括で削除です。
    • good
    • 0
この回答へのお礼

ありがとうございます!
列単位で並び替えが出来るのを初めて知りました。

ありがとうございました。

お礼日時:2016/06/02 15:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!