普段VBAを全く使わない初心者で申し訳ありません。
年度初めに作成したいものがあります。

下のシートのようなものがあり、これをグループ「ア」だけで名前と住所が入ったシート、「イ」だけで名前と住所が入ったシートを新規作成していくプログラムを教えていただきたいです。
なお、グループ名は10グループ程になる予定です。

よろしくお願いいたします。

「エクセルのグループ名ごとに別シートを作成」の質問画像

このQ&Aに関連する最新のQ&A

A 回答 (3件)

こんな感じでどうでしょう。

元データのシート名は、Sheet1としています。

Sub sample()
Dim ws As Worksheet
Dim I As Long
'元シートをコピーし作業用シートを作成。グループでソート&重複を削除する。
Sheets("Sheet1").Copy After:=Sheets(1)
Set ws = ActiveSheet
With ws.Sort
.SortFields.Clear
.SortFields.Add Key:=Range("C:C"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.SetRange Range("A:C")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ws.Range("A:C").RemoveDuplicates Columns:=3, Header:=xlYes
'グループ毎のシート生成。
For I = 2 To ws.UsedRange.Rows.Count
If ws.Cells(I, 3) = "" Then Exit For
Sheets("Sheet1").Copy After:=Sheets(Sheets.Count)
With ActiveSheet
.Range("A:C").AutoFilter Field:=3, Criteria1:="<>" & ws.Cells(I, 3), _
Operator:=xlAnd
.Rows("2:" & .UsedRange.Rows.Count).Delete Shift:=xlUp
.Range("A:C").AutoFilter

.Name = ws.Cells(I, 3)
End With
Next I
'作業用シートの削除。
Application.DisplayAlerts = False
ws.Delete
Application.DisplayAlerts = True
End Sub
    • good
    • 0
この回答へのお礼

迅速な回答ありがとうございます。さっそく作ってみます。

お礼日時:2016/03/05 20:56

こんばんは!



すでに回答は出ていますので、参考程度で・・・
標準モジュールです。

Sub Sample1()
Dim i As Long, k As Long, myCol As Long
Dim sN As String, wS As Worksheet, myFlg As Boolean
Application.ScreenUpdating = False
With Worksheets(1)
myCol = .Cells(1, Columns.Count).End(xlToLeft).Column + 2
.Range("C:C").AdvancedFilter Action:=xlFilterCopy, copytorange:=.Cells(1, myCol), unique:=True
.Columns(myCol).Sort key1:=.Cells(1, myCol), order1:=xlAscending, Header:=xlYes
For i = 2 To .Cells(Rows.Count, myCol).End(xlUp).Row
For k = 2 To Worksheets.Count
If Worksheets(k).Name = .Cells(i, myCol) Then
myFlg = True
Exit For
End If
Next k
If myFlg = False Then
Worksheets.Add after:=Worksheets(Worksheets.Count)
Worksheets(Worksheets.Count).Name = .Cells(i, myCol)
End If
sN = .Cells(i, myCol)
Set wS = Worksheets(sN)
myFlg = False
wS.Move after:=Worksheets(i - 1)
wS.Cells.Clear
With .Range("A1").CurrentRegion
.AutoFilter field:=3, Criteria1:=.Cells(i, myCol)
.SpecialCells(xlCellTypeVisible).Copy wS.Range("A1")
End With
Next i
.AutoFilterMode = False
.Columns(myCol).Clear
End With
Application.ScreenUpdating = True
End Sub

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

コードを書いて頂き、ありがとうございます。

お礼日時:2016/03/05 21:00

私だったら、グループの数のシートは作成しませんね。


一例ですが、別途 シートに
 A    B   C
名前  住所  グループ
         ア
と云ったシートを準備して

C2セルにグループ名を入力したら
A,B列が表示される仕組みを考えます。
関数でも出来ますが、フィルターオプションの機能が便利です。
http://www4.synapse.ne.jp/yone/excel2010/excel20 …
を参考にしてみてください。
コードは、マクロの記録で簡単に作成できます。
次に、シートモジュールの
Private Sub Worksheet_Change(ByVal Target As Range)
・・・・
End Sub
にコピーすれば、C2セルを変更すると瞬時に希望の一覧になります。
シートは2枚で十分です。
マクロのコードも数行で可能です。
    • good
    • 0
この回答へのお礼

ありがとうございます。フィルターオプションバージョンも作成してみます。

お礼日時:2016/03/05 21:00

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qジ・オパルズのテンダーラヴァーのスペル

ジ・オパルズというガールグループの、「テンダーラヴァー」、という曲のスペルを教えて下さい。TENDER LOVER、だと思うのですが、センダンラヴァー、と聞こえるので。できれば全歌詞のスペルが知りたいのですが。

Aベストアンサー

【Tender Lover】
Opalsの1962年の曲ですね。
Does It Matterという曲のB面のようです。
歌詞は見つかりませんでした。

http://www.indiana45s.com/indiana45s_detail.php?recordID=1175&group=Opals

Q【VBA】費目別、月別のデータを5行ごとに1シート作成したい

支出データをまとめた出納簿(画像左)から、費目別月別のシート(画像右)を作成したいです。
作成方法は以下の通りです。
説明文内の番号(①など)と画像右の番号を一致させています。

・出納簿から費目別①、月別②のデータを抽出する。
・データを日付順③に5行ずつ費目別月別シートに転記する。5行以上ある場合は2枚目のシートを作成する。
・費目毎の該当月におけるデータの通し番号④を付与する。費目Aの3月のN番目のデータが分かるようにする。
・シートごとに小計⑤を計算する。
・月ごとに月別合計⑥を計算する。
・これらの作業を費目A~Cにおいてそれぞれ実施する。それぞれの費目別、月別のシートが作成さることになる。

マクロは少しはわかるのですが、このレベルは私の手に負えません。
どなたかアドバイス頂けると大変ありがたいです。
どうぞよろしくお願いします。

Aベストアンサー

No4です。
行数が多いので、こちらに回答しました。
http://climbi.com/b/8745/0

実行時は、シートの追加、削除を繰り返しますので、
念のため、動作確認が完了するまでは、bookのバックアップをとり、
実行してください。
「費目別月別シート作成」を実行してください。
実行時は、「出納簿」「フォーマット」のシートが存在することが前提です。
本マクロは、何回も呼び出されることを前提に作ってあります。
その為、費目別月別シートが既にある場合は、それを削除し、新たに費目別月別シート
を作成するようにしています。
費目別月別シートは列幅の自動調整をしています。
もし、これを行わないようにする場合は、
Private Sub output_month(ByVal YM As Long)の中の
'列幅を自動調整する
sh2.Columns("A:D").AutoFit
をコメントにしてください。

簡単に概要だけ説明しておきます。
1.作業行にワークシートを1つ作ります。(最後に削除します)
そこへ1つの種目について3列を使用して、
出納簿のデータを格納します。
A列 B列 C列
日付 内容 支払金額
のように格納します。(見出しはありません)
2つ目の費目はE,F,Gの列を使います。以降、費目が増えるごとに、右へ列を増やしていきます。
その時、どの費目が、どの列を使っているかは、連想配列で管理します。
連想配列の詳細については、VBAと連想配列でネットを検索してください。
費目をキーとして連想配列を2つ作成します。
dicTColはその費目が何番目かの数字を格納します。
(1,2,3の値を設定、1がA,B,Cの列を使用、2がE,F,Gの列を使用、以降同様)
dicTCtrはその費目の件数を格納します。(作業用シートのその費目の行)

2.作業用ワークシートは1か月分だけ格納します。
月が替わったときに、今まで、作業用ワークシートに格納していたデータを
費目順に一気にワークシートへ出力します。
出力後、ワークシート及び連想配列をクリアし、次の月に備えます。

不明点、及び不具合などがあれば、補足してください。

参考用にこちらで確認したときの1例のシートの内容の図を添付しておきます。

No4です。
行数が多いので、こちらに回答しました。
http://climbi.com/b/8745/0

実行時は、シートの追加、削除を繰り返しますので、
念のため、動作確認が完了するまでは、bookのバックアップをとり、
実行してください。
「費目別月別シート作成」を実行してください。
実行時は、「出納簿」「フォーマット」のシートが存在することが前提です。
本マクロは、何回も呼び出されることを前提に作ってあります。
その為、費目別月別シートが既にある場合は、それを削除し、新たに費目別月別シート
を作成するよう...続きを読む

Qoutlook express mac os9 グループ一括送信できない。

mac os9.0.4 outlook express 5.0.6  グループ一括送信できない。

mac os9.0.4 powerPC Enabler J1-9.0.4を使用して
outlook express 5.0.6を使しようしているのですが
グループを作って一括送信しようとしても、アドレスの中にアドレス切れや、スペル間違えがあるとすべてのメールが送れません、数百あるメールの中から間違いを探すのには莫大な時間がかかってしまいます。
色々とメーカーに問い合わせましたが、解決しません。 

何か設定などがあるのでしょうか?

詳しい方よろしくお願いします。

Aベストアンサー

まさか宛先:TOにグループを入れて送信しようとされているんじゃ無いですよね?

Qエクセル2003で別のマクロで選択したセルに別のシートからコピーして貼り付けるマクロ

別のマクロで選択したセルに別のシートからコピーして貼り付けるマクロ、どうしても、このマクロが作れないです。
難題すぎて・・・・
貼り付けるセルの値は選択ボタンによって変わる仕様ですが、エクセル2003で可能なんでしょうか?
難しすぎてコードが全然解らない状態です
どなたかご教授願えれば幸いです。

Aベストアンサー

モジュールレベルで変数を宣言すればどうでしょうか。
マクロが同じモジュールにがあるなら
Dim rng As Range
マクロが別のモジュールにあるなら
Public rng As Range

Sub a()
Set rng = ActiveSheet.Range("A1")
End Sub

Sub b()
MsgBox rng.Value
Set rng = Nothing
End Sub

[XL] Visual Basic for Applications 変数の適用範囲
​http://support.microsoft.com/kb/141693/ja

Qofficeのスペルチェックについて

お世話になります。

officeのスペルチェックについて教えていただきたいことがあります。
ちなみにoffice2007です。

今、パワーポイントで、資料を作成しているので、できればパワーポイントで解答をいただけるとうれしいですが、ワードでもエクセルでもわかる方がいらっしゃればご解答をお願いします。

本題ですが、スペルチェックを実行して、引っかかった文字列を[無視]ボタンをクリックすると、以降何度、スペルチェックしても、2度と引っかかることがなくなります。

この状態から、もう一度スペルチェックに引っかかるようにするには、どうしたらよいのでしょうか?

1つ見つけた方法は、同じ文字列を入力すること。

一応これで、もう一度スペルチェックに引っかかる状態には戻ります。コピペでもOK。

その他に方法がありそうなのですが、わからないので、どなたかわかる方お願いします。

なんでこんな質問をしたかというと、いっぱいスペルチェックして、どこをスペルチェックしたかわからない状態になってしまい、最初からスペルチェックをやり直そうと思ったのです。

どなたかよろしくお願いします。

お世話になります。

officeのスペルチェックについて教えていただきたいことがあります。
ちなみにoffice2007です。

今、パワーポイントで、資料を作成しているので、できればパワーポイントで解答をいただけるとうれしいですが、ワードでもエクセルでもわかる方がいらっしゃればご解答をお願いします。

本題ですが、スペルチェックを実行して、引っかかった文字列を[無視]ボタンをクリックすると、以降何度、スペルチェックしても、2度と引っかかることがなくなります。

この状態から、もう一度スペルチェッ...続きを読む

Aベストアンサー

PowerPointのオプションの文章校正欄で、「入力時にスペルチェックを行う」のチェックを外し、一回OKでダイアログを閉じます。
再度オプションを開き「入力時にスペルチェックを行う」のチェックを入れ、OKでダイアログを閉じます。

校閲タブでスペルチェックと文章校正を行ってみます。

Qエクセルマクロ◇別シートで個人ごとに数値の集計

EXCEL2003です。
以下のように、名前・個数・商品名(名前と商品名は重複あり)が列記されている
EXCELのデータを、別シートで商品名の個数を個人ごとに集計したいと思っています。

◇元データ◇

名前 個数 商品

A子  2  りんご
A子  1  りんご
A子  3  みかん
A子  2  みかん
A子  1  メロン
B子  1  みかん
B子  1  みかん
B子  2  メロン
B子  4  キウイ

◇集計データ◇

名前 りんご みかん メロン キウイ

A子  3   5    1
B子      2    2   4

最初ピボットテーブルを使えばいいかと思っていたのですが、
これ以外にも元データから取得する値が出てくる予定のため、
できればマクロを組んで別シートに集計したいです。

よろしくお願いいたします。

Aベストアンサー

こんばんは!
VBAでないので的外れなら読み流してください。

↓の画像で説明させていただきます。

Sheet1のデータをSheet2にまとめるようにしてみました。

Sheet1に名前用と商品用の作業列を使わせてもらっています。

Sheet1のE2セルに
=IF(COUNTIF($A$2:A2,A2)=1,ROW(A1),"")
F2セルに
=IF(COUNTIF($C$2:C2,C2)=1,ROW(A1),"")
として、E2・F2セルを範囲指定し、F2セルのフィルハンドルで
下へずぃ~~~!っとコピーします。
(Sheet2の数式が1000行まで対応できるようにしていますので、そのくらいまでコピーしても構いません)

次にSheet2の商品名セルB1に
=IF(COUNT(Sheet1!$F$2:$F$1000)<COLUMN(A1),"",INDEX(Sheet1!$C$2:$C$1000,SMALL(Sheet1!$F$2:$F$1000,COLUMN(A1))))
として列方向にコピーします。

名前セルのA2に
=IF(COUNT(Sheet1!$E$2:$E$1000)<ROW(A1),"",INDEX(Sheet1!$A$2:$A$1000,SMALL(Sheet1!$E$2:$E$1000,ROW(A1))))

商品のB2セルに
=IF(OR($A2="",B$1=""),"",SUMPRODUCT((Sheet1!$A$2:$A$1000=Sheet2!$A2)*(Sheet1!$C$2:$C$1000=Sheet2!B$1),Sheet1!$B$2:$B$1000))
とし、列方向(商品名が空白でも構いません)にコピー

最後にA2~商品の列方向に数式をコピーした列の最後を範囲指定し、
最後の列のフィルハンドルで下へコピーすると
画像のような感じになります。

これで今後データが増えてもSheet2に反映されます。

以上、長々と書きましたが
参考になれば幸いです。m(__)m

こんばんは!
VBAでないので的外れなら読み流してください。

↓の画像で説明させていただきます。

Sheet1のデータをSheet2にまとめるようにしてみました。

Sheet1に名前用と商品用の作業列を使わせてもらっています。

Sheet1のE2セルに
=IF(COUNTIF($A$2:A2,A2)=1,ROW(A1),"")
F2セルに
=IF(COUNTIF($C$2:C2,C2)=1,ROW(A1),"")
として、E2・F2セルを範囲指定し、F2セルのフィルハンドルで
下へずぃ~~~!っとコピーします。
(Sheet2の数式が1000行まで対応できるようにしていますので、その...続きを読む

QWindows Mail でスペルチェックできない

Windows Mail を使っています。英語のスペルチェックをしたいのですが、「この言語でスペルチェックを実行することができません。オプションダイヤログで別の言語を選択してください。」 とメッセージが出てしまいます。

WORDに貼り付ければスペルチェックができます。
スペルチェックできるようにするにはどうしたら良いでしょうか。

使っているのは Windows Vista 、 nifty Windows mail です。

Aベストアンサー

「この言語ではスペル チェックを実行することができません。スペル チェックのオプション ダイアログで別の言語を選択してください。」とのエラーメッセージが出る場合の案内です。
(Windows Vista で 英語のスペル チェックを Windows メールで実行するとエラーが発生する場合がある)
http://support.microsoft.com/kb/932096/ja

(その他参考:スペル チェックの Windows メールでの英語のテキストが期待どおりに動作しません。)
http://support.microsoft.com/kb/933142/ja

QIDの種類ごとに別シートに印刷用シートを作成。。。

win7、エクセル2007で作成中です。

シート1に
  B列 C列 D列 E列
  ID  所属 部門 名前
  1   A   1   ○○○
  2   A   1   ○○○
  10  B   1   ○○○
  11  B   1   ○○○
  30  B   2   ○○○
  31  B   2   ○○○
  60  B   3   ○○○
  61  B   3   ○○○
  100  C   1   ○○○
  101  C   1   ○○○
  150  C   2   ○○○
  151  C   2   ○○○
  200  C   3   ○○○
  201  C   3   ○○○

こんなデータがあり、IDと名前だけ印刷の必要があるのですが、
縦長で印刷しにくいので、印刷用シートとしてシート2に所属・部門別にIDと名前だけを抽出したいと思っています。
以前配列関数を習った記憶をうろ覚えで使ってみたりしていたのですがうまくゆかず。。rowもうまく扱えず><

これが完成したらこの仕事が終わるので、できればその度貼り付けなどではなく、 
スマートにできたらと思いまして。。。

ちなみに、データは度々増えていきます。

もしよろしければ、ご教授いただけませんか??
よろしくお願いいたします。

win7、エクセル2007で作成中です。

シート1に
  B列 C列 D列 E列
  ID  所属 部門 名前
  1   A   1   ○○○
  2   A   1   ○○○
  10  B   1   ○○○
  11  B   1   ○○○
  30  B   2   ○○○
  31  B   2   ○○○
  60  B   3   ○○○
  61  B   3   ○○○
  100  C   1   ○○○
  101  C   1   ○○○
  150  C   2   ○○○
  151  C   2   ○○○
  200  C   3   ○○○
 ...続きを読む

Aベストアンサー

シート2のB1、B2に所属と部門

A5に
=IF(ROW(A1)>COUNTIFS(Sheet1!$C:$C,B$1,Sheet1!$D:$D,B$2),"",INDEX(Sheet1!$B:$B,SMALL(IF((Sheet1!$C$1:$C$1000=B$1)*(Sheet1!$D$1:$D$1000=B$2),ROW(Sheet1!$B$1:$B$1000)),ROW(A1))))
と記入、コントロールキーとシフトキーを押しながらEnterで入力
以下コピー

B5に
=IF(A5="","",VLOOKUP(A5,Sheet1!$B:$E,4,FALSE))
と記入、ふつーにEnterで入力
以下コピー

A:B列をコピーして完成。

QWord のスペルチェックと文章校正

Word オプションの「文章校正」には、「Microsoft Office プログラムのスペルチェック」と「Word のスペルチェックと文章校正」との別々の大項目がありますが、Office プログラム共通のスペルチェックでなく、Word 独特のスペルチェックが必要な何かがあるのでしょうか?

分けて扱っている意味がよくわかりません。

できれば具体例で教えてください、よろしくお願いします。

Aベストアンサー

具体的に説明すると大変なので、簡単な説明ですが。

> Microsoft Office プログラムのスペルチェック
これは、Officeプログラムとして用意されている指定言語の辞書を元に
したチェックツールであり、辞書として用意されているスペルと比較して
類似のものだけをチェックするものですね。
辞書にない場合に
このスペルチェック用のツールとして用意されている言語に[日本語]は
含まれていないので、日本語はチェックされません。

> Word のスペルチェックと文章校正
Outlook、Word、PowerPoint は入力時に自動でチェックしますが、他の
ものは手動でスペルチェックを実行する必要があります。
Wordなどでは、この自動でチェックをする機能を設定する項目があり、
これをチェックしておけば、赤や青などの波線で表示してくれます。
https://support.office.com/ja-jp/article/Office-2010-%E4%BB%A5%E9%99%8D%E3%81%A7%E3%82%B9%E3%83%9A%E3%83%AB-%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%81%A8%E6%96%87%E7%AB%A0%E6%A0%A1%E6%AD%A3%E3%82%92%E8%A1%8C%E3%81%86-5cdeced7-d81d-47de-9096-efd0ee909227

Word独自の機能としての文章校正は、[設定]ボタンでわかります。
http://www.tanimoto.to/Publishing_Librarian/Word_kousei/
文書のスタイルとして公用語などを指定すると、それに見合った設定に
チェックが付き、より厳密にチェックさえるようになります。
入力ミスだけでなく、表現としてのチェックや半角全角の混合のチェック
など、Word以外ではチェックされないこともチェックの対象にすることが
できるようになります。
http://www.wanichan.com/pc/word/2010/07/06.html

具体的に説明すると大変なので、簡単な説明ですが。

> Microsoft Office プログラムのスペルチェック
これは、Officeプログラムとして用意されている指定言語の辞書を元に
したチェックツールであり、辞書として用意されているスペルと比較して
類似のものだけをチェックするものですね。
辞書にない場合に
このスペルチェック用のツールとして用意されている言語に[日本語]は
含まれていないので、日本語はチェックされません。

> Word のスペルチェックと文章校正
Outlook、Word、PowerPoint は入力時に自動で...続きを読む

Qexcel2013で、マスターシートのデータを別シートに自動で行ごと反映したい

仕事で、データ整理を任されたのですが、量が膨大で途方に暮れています
おわかりになる方いましたら、教えてください。

現在
会社    勘定項目    売掛    買い掛け   備考 
○○商事  備品購入   12000    50000    お得意様
○○建設  施設増設          30000    新設
(株)○○  納品     20000           7/10入金

のようなデータがマスターシートに2000行ぐらいあります。
また、さらにデータを追加していく状態です。

これを、○○建設のデータだけを別シートにコピーするのは
http://kokodane.com/2013_waza_053.htm
こちらのサイト等を拝見し、できるようになったのですが、さらに追加された
○○建設のデータは手入力で、各シートに入力している状態です。
1ブックの中に、会社ごとが約10シート、勘定項目ごとが約10シート、備考ごとが約10シート、マスターシートがひとつあります。

これをマスターシートにあたらしく、○○建設のデータを一行挿入追加したら、
自動で、会社ごとの○○建設のページに自動で一行追加挿入され、入力されるようにというのは
できるのでしょうか?
また、それが備考欄が「新設」であれば、備考ごとの新設シートにも自動で追加されるようには
可能でしょうか?

専用ソフトを使ったほうがいいのは重々承知ですが、会社から許可が出ない状態です
申し訳ありませんが、アドバイスお願いできますでしょうか。

仕事で、データ整理を任されたのですが、量が膨大で途方に暮れています
おわかりになる方いましたら、教えてください。

現在
会社    勘定項目    売掛    買い掛け   備考 
○○商事  備品購入   12000    50000    お得意様
○○建設  施設増設          30000    新設
(株)○○  納品     20000           7/10入金

のようなデータがマスターシートに2000行ぐらいあります。
また、さらにデータを追加していく状態です。

これを...続きを読む

Aベストアンサー

こんばんは!

VBAになりますが、一例です。

>自動で、会社ごとの○○建設のページに自動で一行追加挿入され・・・

ユーザーフォームを使えば簡単にできると思いますが、
ユーザーフォーム作成そのものに手間がかかりますので、
単純に一旦データを消去し、オートフィルタで新たにコピー&ペーストする方法にしてみました。

>また、それが備考欄が「新設」であれば、備考ごとの新設シートにも自動で追加されるようには

の部分で「7/10入金」のような備考Sheetも必要なのかどうか判らないので
とりあえず「会社名」だけのシート操作をやってみました。
「マスター」シートはシート見出しの一番左側に配置しておいてください。

Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)マクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub Sample1() 'この行から//
Dim i As Long, k As Long, sN As String
Dim wS As Worksheet, myFlg As Boolean
Application.ScreenUpdating = False
Worksheets.Add after:=Worksheets(Worksheets.Count)
Set wS = Worksheets(Worksheets.Count)
With Worksheets("マスター") '←「マスター」は「マスターシート」の実際のSheet名に!★
.Range("A:A").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A1"), unique:=True
For i = 2 To wS.Cells(Rows.Count, "A").End(xlUp).Row
sN = wS.Cells(i, "A")
For k = 2 To Worksheets.Count
If Worksheets(k).Name = sN Then
myFlg = True
Exit For
End If
Next k
If myFlg = False Then
Worksheets.Add after:=Worksheets(Worksheets.Count - 1)
Worksheets(Worksheets.Count - 1).Name = sN
End If
Worksheets(sN).Cells.Clear
With .Range("A1").CurrentRegion
.AutoFilter field:=1, Criteria1:=sN
.SpecialCells(xlCellTypeVisible).Copy Worksheets(sN).Range("A1")
End With
Worksheets(sN).Columns.AutoFit
myFlg = False
Next i
.AutoFilterMode = False
End With
Application.DisplayAlerts = False
wS.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub 'この行まで//

※ 最初のマクロ実行では会社名が存在しない場合、シートを追加するようにしています。
Sheet順が意図しない順になっているかもしれません。
その場合はSheet見出しのシートを移動させてください。

※ 「マスター」シートのデータ変更があるたびに
マクロを実行する必要があります。m(_ _)m

こんばんは!

VBAになりますが、一例です。

>自動で、会社ごとの○○建設のページに自動で一行追加挿入され・・・

ユーザーフォームを使えば簡単にできると思いますが、
ユーザーフォーム作成そのものに手間がかかりますので、
単純に一旦データを消去し、オートフィルタで新たにコピー&ペーストする方法にしてみました。

>また、それが備考欄が「新設」であれば、備考ごとの新設シートにも自動で追加されるようには

の部分で「7/10入金」のような備考Sheetも必要なのかどうか判らないので
とりあえず「会社...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング