- ベストアンサー
エクセルのシート抽出について
初めて質問させて頂きます。 エクセル2003を使用しているのですが、1つのブックの中に大量の シートが有りまして、そのシートの名前が「1月1日」~「12月31日」というようになっております。 その中から、任意の月(例えば5月分だけとか)の分のシートを、別のブックにコピーしたいのですが、何か良い方法はありますでしょうか? 何分はじめての投稿で、質問の要領を得ない部分もあるかもしれませんが、宜しくご教授の程お願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
> 「マクロ」だと相当複雑になってしまいますでしょうか? この程度、複雑になりました。(笑) 使い方はわかるんですよね? Sub test01() Dim sh As Worksheet Dim ans As Integer Dim sn As String, x As String Dim ar As Variant ans = InputBox("何月分をコピーしますか?5月なら5と入力してください。", " (⌒o⌒)? ") x = "*" & Val(ans) & "月*" For Each sh In ThisWorkbook.Worksheets If StrConv(sh.Name, vbNarrow) Like x Then sn = sn & sh.Name & "," End If Next If sn = "" Then MsgBox "ないみたい。", vbCritical, "( ̄□ ̄;)!!" Exit Sub End If sn = Left(sn, Len(sn) - 1) ar = Split(sn, ",") Sheets(ar).Copy Application.Dialogs(xlDialogSaveAs).Show End Sub
その他の回答 (4)
参考程度ですが、 外のブックからデータを読み込むという感じになるのですが こちらも少し参考になると思います。 http://officetanaka.net/excel/vba/tips/tips28.htm
お礼
ご返答ありがとうございます。 貴重な参考資料になりますので、後程ゆっくりと参照したいと思います。
- simaregoma
- ベストアンサー率25% (116/464)
それと・・ 複数シートを選択して「作業グループ」にすれば、複数シートをまとめて移動やコピー、削除できます。 複数のシートを選択するには、「Shift」キーまたは「Ctrl」キーを押しながらシート見出しをクリックすればOK。 http://sharp-pcstudio.com/disp.asp?cno=5&tbno=0&dno=89 を参照されるといいです。
お礼
ご返答誠にありがとうござます。 当方の説明不足で申し訳ないのですが、定常の作業として、パソコンにあまり詳しくない人でも出来るように、「マクロ」での作成を 考えているのですが、やはり「マクロ」だと複雑でしょうか? 勝手ながら、そのあたりも教えて頂ければ幸いです。
- simaregoma
- ベストアンサー率25% (116/464)
コピーしたいシートのタブの上で右クリックし 移動またはコピーを選択し、 移動先ブック名に、新しいブックを選択する。 するとコピー(シートの移動)ができます。
- FEX2053
- ベストアンサー率37% (7991/21371)
定性的にコピーを行うなら、何らかのマクロを組んだほうがいいかも 知れませんが、たまに行うだけなら、 「[Ctrl]キーを押しながら、シート名のタブを順にクリックする」 これで必要なシートだけ選択できますので、そのまま右クリック 「移動またはコピー」で「新しいブック」を選択すればコピーできます。 ゴチャゴチャ考えているうちに作業できると思いますけど・・・。
お礼
早速のご回答、本当にありがとうございます。 説明不足で、申し訳なかったのですが、 実は、エクセルにあまり詳しくない人に定常的にやらせようと 思っていましたので、「マクロ」での方法を考えていました。 ただこの方法は私も知らなかった事なので、大変勉強になりました。 重ね重ね有難うございます。 「マクロ」だと相当複雑になってしまいますでしょうか? 甘えついでに教えて頂けると幸いです。
お礼
ご回答ありがとうございます。 使い方は、時間をかけて、恐る恐るなら、なんとか出来るレベルですので、これから早速やってみたいと思います。 エクセルに馴染みのない方でも、楽しめそうな絵文字まで入れて頂いたみたいで、深く感謝致します。 本当にありがとうございました。