アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル上に3600行のデータがあり、その中から任意の40個の行(行番号234、行番号336、行番号487、・・・)のみを表示させる作業を現在行っています。
今行っている方法は、「任意の行から次の任意の行を データ_グループとアウトラインの設定_グループ化 を行い、グループ化した範囲を折りたたんで、任意の40行のみを表示させる」方法です。
この方法だと、「データ_グループとアウトラインの設定_グループ化 を行い、グループ化した範囲を折りたたむ」という一連の作業を40回繰り返すことになります。また、同様に処理するワークシートが残り3部あります。
地道に作業することは全く苦痛ではありませんが、もし、エクセルの機能の中にこのような作業をサポートする別の方法があれば、教えて下さい。
よろしくお願いします。

A 回答 (1件)

大変ですね。

私ならマクロに頼ります。

新しいブックを開き、Alt+F11キーでマクロエディタを開きます。
メニューから「挿入」→「標準モジュール」をクリックし、開いた画面に以下をコピーします。

Sub test()
 Const book = "BookName.xls" ' ★ブック名
 Const sheet = "SheetName" ' ★シート名
 Dim i, sh As Worksheet
 Dim Lines As Variant
 
 Lines = Array(1, 3, 5) ' ★抽出する行番号
 Set sh = Workbooks(book).Sheets(sheet)
 For i = 0 To UBound(Lines)
  sh.Rows(Lines(i)).Copy ThisWorkbook.Sheets("Sheet1").Rows(i + 1)
  ' セルが数式だと表示されない可能性があるので値のみ再度コピー
  ThisWorkbook.Sheets("Sheet1").Rows(i + 1).Value = sh.Rows(Lines(i)).Value
 Next
End Sub

★の部分を変更して下さい。
エクセルの画面に戻ってAlt+F8キー(またはメニューの「ツール」→「マクロ」→「マクロ」)でtestのマクロを実行します。
抽出の対象となるエクセルは一緒に開いておいて下さい。
書式と値が新しいブックにコピーされます。
列の幅はコピーされませんが元のブックから一度だけコピー&ペーストしておけばいいかと。
    • good
    • 0
この回答へのお礼

ありがとうございました。おかげさまで1シートの作業が完了しました。残りのシートも今日中に終わらせることができそうです。(追記:エクセルを使いこなせていないことがよく理解できました。)

お礼日時:2011/02/16 21:31

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