Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5087 / 13646 ツリー ←次へ | 前へ→

【52671】シート作成について 考える人 07/11/25(日) 20:09 質問[未読]
【52672】Re:シート作成について かみちゃん 07/11/25(日) 20:30 発言[未読]
【52674】Re:シート作成について 考える人 07/11/25(日) 21:20 質問[未読]
【52675】Re:シート作成について じゅんじゅん 07/11/25(日) 21:29 発言[未読]
【52693】Re:シート作成について 考える人 07/11/26(月) 20:22 質問[未読]
【52694】Re:シート作成について じゅんじゅん 07/11/26(月) 20:37 発言[未読]
【52703】Re:シート作成について 考える人 07/11/26(月) 22:01 お礼[未読]

【52671】シート作成について
質問  考える人 E-MAIL  - 07/11/25(日) 20:09 -

引用なし
パスワード
   ユーザーフォームを使って指定した名前のシートをつくる構文を
人から教えてもらいました。(元リストからフィルタをかけてコピー貼り付け)
これを応用して、シート「マスタ」のA列に記入してある名称を全て
一括でつくる式を作りたいと思いますが、全く切り口がわかりません。
Loopを使えば??とは思うのです・・。
もう少しレベルを落とした形で教えてもらうことは可能でしょうか。

Sub Samp()
Dim i As Integer, col As Integer, frg As Integer, SheName As String

col = Worksheets("マスタ").UsedRange.Columns.Count
cu = ThisWorkbook.Worksheets.Count         
SheName = CStr(ListBox1)              
For i = 1 To cu     

If Worksheets(i).Name = SheName Then       
 frg = 1 
 Exit For
End If                 
Next i            

If frg <> 1 Then                 
 Sheets.Add
 ActiveSheet.Name = SheName           

For i = 1 To col                   
 ActiveSheet.Columns(i).ColumnWidth = _       
 Worksheets("マスタ").Columns(i).ColumnWidth    
Next i

Else                        
 Worksheets(SheName).Cells.ClearContents    
End If                       

With Worksheets("マスタ").Range("A1")        
 .AutoFilter Field:=1, Criteria1:=ListBox1     
 .CurrentRegion.SpecialCells(xlVisible).Copy Worksheets(SheName).Range("A1")    
 .AutoFilter                                    
End With
End Sub

【52672】Re:シート作成について
発言  かみちゃん  - 07/11/25(日) 20:30 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> シート「マスタ」のA列に記入してある名称を全て一括でつくる式

どういったものが作りたいのか、もう少し具体的に説明できませんか?
コードだけ提示されても、何がしたいのか想像を働かせないといけませんので。

【52674】Re:シート作成について
質問  考える人 E-MAIL  - 07/11/25(日) 21:20 -

引用なし
パスワード
   ご連絡ありがとうございます。以下の内容で通じますでしょうか。
どうぞ、よろしくお願いします。

やりたいことは、大まかに言うと元のデータベースを必要な項目でフィルタをかけて別シートを作成する(その時に作ったシート名は抽出した項目名とする)
例)都道府県を含むひとつのデータベースがあり、このデータベースを基に
  指定した県名(東京、神奈川、千葉、埼玉etc)をシート別に全て作成する。

【作りたいしかけ】
現状、「設定」シートと「マスタ」シートを作っております。
「マスタ」シートに対象となるデータの全データを貼り付けます。
設定シートのA列(A2〜)にマスタデータで抽出したい名称または数字を入力します。
マクロの開始により、マスタデータをA列(A2)で指定した名称でフィルタ抽出
その抽出されたデータを別シートで作成。さらにシート名もその抽出名へ変更。
上の例で言うと(「東京」など)引続きA列(A3以降)にデータがあれば同じ処理を繰り返す。

先に記載してある構文は上記の内容をスポット的に行っているもので、例えば神奈川だけを作りたいときにユーザーフォームから指定して作成する仕組みです。

【52675】Re:シート作成について
発言  じゅんじゅん  - 07/11/25(日) 21:29 -

引用なし
パスワード
   ▼考える人 さん:
>ご連絡ありがとうございます。以下の内容で通じますでしょうか。
>どうぞ、よろしくお願いします。
>
>やりたいことは、大まかに言うと元のデータベースを必要な項目でフィルタをかけて別シートを作成する(その時に作ったシート名は抽出した項目名とする)
>例)都道府県を含むひとつのデータベースがあり、このデータベースを基に
>  指定した県名(東京、神奈川、千葉、埼玉etc)をシート別に全て作成する。
>
>【作りたいしかけ】
>現状、「設定」シートと「マスタ」シートを作っております。
>「マスタ」シートに対象となるデータの全データを貼り付けます。
>設定シートのA列(A2〜)にマスタデータで抽出したい名称または数字を入力します。
>マクロの開始により、マスタデータをA列(A2)で指定した名称でフィルタ抽出
>その抽出されたデータを別シートで作成。さらにシート名もその抽出名へ変更。
>上の例で言うと(「東京」など)引続きA列(A3以降)にデータがあれば同じ処理を繰り返す。
>
>先に記載してある構文は上記の内容をスポット的に行っているもので、例えば神奈川だけを作りたいときにユーザーフォームから指定して作成する仕組みです。

記事番号:51820のようなものですか?

【52693】Re:シート作成について
質問  考える人 E-MAIL  - 07/11/26(月) 20:22 -

引用なし
パスワード
   ご連絡ありがとうございます。
試しにうごかしましたところほぼ希望通りの動きをしてくれました。

これは全データから直接シートを分けて作っているのでしょうか?

【52694】Re:シート作成について
発言  じゅんじゅん  - 07/11/26(月) 20:37 -

引用なし
パスワード
   ▼考える人 さん:
>ご連絡ありがとうございます。
>試しにうごかしましたところほぼ希望通りの動きをしてくれました。
>
>これは全データから直接シートを分けて作っているのでしょうか?

A列にあるデータから、会社名を重複しないように取り出してシートを作成し、
今度はその会社名を元にデータの抽出を繰り返しながら、その会社名のシートへ
データを貼り付けてます。

次に実行した場合、既に同じ会社名のシートが存在すれば強制削除して
上記内容を実行するだけです。
(各シートにデータの追加作業は行なってません。実行の度に
マスターデータシートからデータを取り出してます。)

【52703】Re:シート作成について
お礼  考える人 E-MAIL  - 07/11/26(月) 22:01 -

引用なし
パスワード
   ありがとうございました。
もう一度よく、式を読み直して勉強したいと思います。

5087 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free