[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セルに入力されているデータを新シート名に』(いちごみるくキャラメル)
請求書を作っています。
リストシートのB列に顧客名が500件くらい入っているのですが、
毎回原本シートをコピーしてシート名を顧客名に変えています。
作り終えた後は月末にシートごと別ファイルに移動しています。
そこで、原本シートをコピーしB列の顧客名に変えるのを簡単にしたいのですが
良い方法は有りますか?
毎回地味に面倒なので、良い方法を教えてもらえると嬉しいです!
よろしくお願いします。
< 使用 Excel:Excel2007、使用 OS:Windows7 >
シートのコピーやシート名の操作は数式(関数)じゃどうにもならないように思うのでVBA(マクロ)で処理することを考えてみてはどうでしょうか?
(もこな2) 2018/05/08(火) 00:52
毎月ランダムに100-200件くらいシートのコピーとシート名を変えています。
最初は月初に500シートを2時間くらいかけて作ってたんですが、原本が割とよく変わるのと
使わないシートを作るのが無駄になって辞めました。
やっぱりマクロが要るんですね。。。
やった事無いですが挑戦してみます。
(いちごみるくキャラメル) 2018/05/08(火) 07:34
請求書発行の時にまとめて処理するほうがよいのでは
月の途中でもフィルタなどで見ることができるし
(ん) 2018/05/08(火) 08:14
コードを組んでみました。 標準モジュールにコピペして実行してみてください。 顧客名は「リスト」シートのB2から下方向にあるものとしています。
Sub MakeSheet()
'変数宣言 Dim ListSh As Worksheet Dim CopySh As Worksheet Dim Rng As Range
'各シートを変数にセット Set ListSh = Sheets("リスト") Set CopySh = Sheets("原本")
'リストシートのB2以下データのある最下行まで、原本シートをコピーし、顧客名をシート名に変えるのを繰り返す。 With ListSh For Each Rng In .Range("B2", .Range("B" & .Rows.Count).End(xlUp)) If Len(Rng.Value) Then CopySh.Copy , ThisWorkbook.Sheets(Sheets.Count) ActiveSheet.Name = Rng.Value End If Next Rng End With
End Sub (ろっくん) 2018/05/08(火) 08:39
ほんとうにありがとうございました!
(いちごみるくキャラメル) 2018/05/08(火) 20:43
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.