- ベストアンサー
Excel2007で名簿管理をしています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ボタンを押下したときに実行されるマクロの例です。 Private Sub CommandButton1_Click() Dim objWorkSheet As Worksheet Dim SheetName As String Dim i As Integer Dim iRowNo As Integer '書き込むシートの行番号 Application.ScreenUpdating = False '画面の更新OFF '各ワークシート名取得 For Each objWorkSheet In Worksheets iRowNo = 1 SheetName = objWorkSheet.Name If SheetName <> "名簿マスタ" Then '名簿マスタは処理させない For i = 2 To UsedRange.Rows.Count If InStr(1, Cells(i, 2).Value, SheetName) <> 0 Then '住所の抽出 iRowNo = iRowNo + 1 Rows(i).Copy '該当の行をコピー Worksheets(SheetName).Rows(iRowNo).PasteSpecial '住所シートへ貼り付け End If Next End If Next End Sub この処理が実行されると全シート分の処理が行われます。 前提条件としては1行目がタイトル行であることと 住所シート名を検索キーにしているので住所シート名が「北海道」等になっていることです。 参考にしていただければ幸いです。
その他の回答 (2)
- MackyNo1
- ベストアンサー率53% (1521/2850)
以下のような操作をマクロの記録で記録してみてください。 データベースシートの表示タブで「マクロの記録」をクリックし、適当な名前を付けてOKします。 次いで、「データ」「フィルタ」「テキストフィルタ」で住所の列でたとえば「北海道」「から始まる」を指定し、この抽出されたデータよりも大きめの範囲(空白行を含めて元のデータ数の2倍の行まで)を選択し、右クリック「コピー」し、北海道シートで右クリック「貼り付け」します。 この抽出操作をすべての都道府県で行い(マクロコードの編集でもOK)、最後にデータベースシートでフィルタモードを解除し、マクロの記録を終了してください。
- aokii
- ベストアンサー率23% (5210/22062)
普通にフィルタが宜しいかと思うのですがどうでしょうか。