Excel VBA質問箱 IV

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

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


8913 / 76735 ←次へ | 前へ→

【73390】Re:AdvancedFilterメソッドについて
発言  kanabun  - 13/1/3(木) 0:26 -

引用なし
パスワード
   ▼ニャンソ さん:
>▼kanabun さん:
>
>明けましておめでとうございます。
スラマッ ターフン・バルー(インドネシア語で
  新年おめでとうございます m(_ _)m)

>>まず、Sub Try1b() が想定しているような BookとSheetのレイアウトで
>>実行検証できる最低限のサンプルデータをつくり、そこで、ステップ実行
>>なりしながら、コードの各行がしていることを理解することから始める
>>のが、「急がば回れ」かと思います。
>
>分かりました。
>少しずつ頑張ります。
>
>
>結果ですが、
>Sub Try1()の
>
>Set shtL = Book3.Worksheets("List")
>
>と
>
>With Book3.Worksheets("Temp") 'Temp Sheetに必要データだけ転記
>
>のところが、インデックスがないと出てしまいます。
>
>名前をコピペしたので間違いがないはずなのですが…

インデックスがない、とは そういう名前のシートがない、という意味だと
思います。マクロを書いたBookに 「List」という名前のシート、「Temp」
という名前のシートが必要です。

それぞれのシート・レイアウトは以下のようなのを想定しています。
Book3 「List」シート
 A   B   C   D  E      G
       グループ 従業員          
県名  地区  番号  番号 従業員名   地区
愛知  A地区  1   005  新井    A地区
岐阜  B地区  1   006  荒川    B地区
三重  C地区  2   015  上野    C地区
静岡  D地区  2   017  遠藤    
福井  E地区  3   020  大貫    
東京  A地区  6   038  君島  
東京  B地区  6   041  小池  
東京  C地区  6   050  佐々木  
東京  D地区  6   051  佐藤  
東京  E地区  6   057  鈴木  
東京  F地区  6   058  須藤  
東京  G地区  6   062  高久  
東京  X地区  6   065  高橋  


Book3 「Temp」シート Try1() 実行後
  A   B   C  D   E     G  H 
             従業員 従業員   申請  実 
Group番号 県名  地区 番号  氏名    金額  金額
  1   三重  C地区 005  新井    87  73
  2   岐阜  B地区 015  上野    81  73
  2   岐阜  B地区 017  遠藤    90  51
  3   三重  C地区 020  大貫    87  36
  3   愛知  A地区 024  岡田    63  100
  4   愛知  A地区 030  加藤    73  44
  4   三重  C地区 032  神山    91  32
  5   愛知  A地区 034  川島    73  44


>
>cc.Resize(, 24).AdvancedFilter xlFilterCopy, _
>     CriteriaRange:=c, _
>     CopyToRange:=.Cells(nRow, 2).Resize(, 6) '別シートに抽出
>
>またこちらでは、
>
>「抽出した範囲にはフィールド名がないかまたは、無効なフィールド名です」
>と表示されました。

変数 cc というのは、送られてきた Book1 の抽出範囲の[C7]からデータ最終行
までの範囲です。
cc.Resize(, 24) というのは このC列範囲を列方向に24列分拡張した表範囲
のことです。

これは

>Book1 Sheet1
>A・B・C・D・E・F・G・H    〜       X・Y・Z
>空白・通番・県名・地区・グループ番号・従業員番号・従業員名・過去申請金額・>申請金額・実金額

というレイアウトを仮定しています。
これも7行目に 上記のような項目名が(文字列は違っていてもかまいませんが、
列の役割が違っていては困ります。)書いてあり、Book1 から必要な地区名だけ
(←これは Book3の「List」シートのG列に書いてあります)Book3の「Temp」
シートに抽出コピーしようとしています。

> With Book3.Worksheets("Temp") 'Temp Sheetに必要データだけ転記
>   .UsedRange.Clear
>   '列見出しのコピー
>   .Cells(nRow, 1) = "Group番号" 'あとで Book3より引用
>   .Cells(nRow, 2) = shtA.[C7].Value '県名
>   .Cells(nRow, 3) = shtA.[D7].Value '地区★
>   .Cells(nRow, 4) = shtA.[F7].Value '従業員番号-----+
>   .Cells(nRow, 5) = shtA.[G7].Value '従業員氏名   |印刷項目
>   .Cells(nRow, 6) = shtA.[Y7].Value '申請金額    |
>   .Cells(nRow, 7) = shtA.[Z7].Value '実金額 -------+
>   With shtA
>     Set cc = .Range("C7", .Cells(.Rows.Count, "C").End(xlUp))
>   End With
>   cc.Resize(, 24).AdvancedFilter xlFilterCopy, _
>     CriteriaRange:=c, _
>     CopyToRange:=.Cells(nRow, 2).Resize(, 6) '別シートに抽出

Book3の「Temp」シートは白紙の状態のされ( .UsedRange.Clear )
そこに必要な項目をBook1の7行目から転記し、
AdvancedFilter(フィルタオプションの設定)で 必要な地区名データだけを
いま「Temp」シートに転記した項目名の列だけ Book3「Temp」に抽出して
います。
AdvancedFilterでは 項目名が重要です。そして、項目名の順番は抽出先
シートで 元シートの順番と違っていても問題ありません。
●Book3「Temp」の抽出データの列並び順は 印刷時の並び順に合わせておき
ます。
もちろん、グループ番号で行方向に並び替えてから、グループ番号順に印刷
しますから、印刷に必要な項目以外に それら並び替えなど表の加工に必要
なデータも書き出しておき、

> ◆A:Group番号 D:従業員NB E:員名 F:申請日 G:申請金額 H:実金額

印刷範囲は このうちの cc.Columns("D:H") だけにしているわけです。


>
>今さらで申し訳ないのですが、「Workbook」・「 Worksheet」・「Sheets」・「Worksheets」の
>違いは何ですか?

「Workbook」はブック、他は シートです。

「Sheets」は Worksheet と Chart があります(ワークシートと グラフシート
の両方が含まれます)

「Worksheets」は 「Worksheet」(ワークシート)の集合(Collection)のこと
です。セルの集合(Collection)が Cells, Workbookの集合が Workbooks
ワークシートの集合が Worksheets です。
集合内の個々のメンバーのことをItemプロパティで指定します。
Worksheets.Item("Sheet1") といったら、
Worksheets Collection(集合) 内の 「Sheet1」という名前のシートのことです。
通常Worksheets.Item("Sheet1") は Worksheets("Sheet1") と省略して書きます。
Cells(1,1) というのも Cells(つまり ワークシートのなかのすべてのセルの集合
) の中の .Item(1, 1) 1行1列目にある単一セル[A1]のことを .Item を省略して
Cells(1,1) と書いているんです。
Book3 のすべてのワークシートの集合 Worksheets のなかに メンバー"List" や
メンバー"Temp" がいないと、「インデックスが有効範囲にありません」という
エラーが出ます。
Worksheets.Item("List") でエラーなら、そういうItem がないということです。
0 hits

【73344】AdvancedFilterメソッドについて ニャンソ 12/12/21(金) 23:34 質問
【73346】Re:AdvancedFilterメソッドについて UO3 12/12/22(土) 0:44 発言
【73348】Re:AdvancedFilterメソッドについて ニャンソ 12/12/22(土) 8:33 質問
【73349】Re:AdvancedFilterメソッドについて kanabun 12/12/22(土) 10:08 発言
【73350】Re:AdvancedFilterメソッドについて kanabun 12/12/22(土) 10:17 発言
【73353】Re:AdvancedFilterメソッドについて ニャンソ 12/12/22(土) 16:22 回答
【73352】Re:AdvancedFilterメソッドについて ニャンソ 12/12/22(土) 16:18 質問
【73351】Re:AdvancedFilterメソッドについて UO3 12/12/22(土) 14:07 発言
【73354】Re:AdvancedFilterメソッドについて ニャンソ 12/12/22(土) 16:28 回答
【73355】Re:AdvancedFilterメソッドについて UO3 12/12/22(土) 18:23 発言
【73356】Re:AdvancedFilterメソッドについて ニャンソ 12/12/22(土) 19:14 お礼
【73358】Re:AdvancedFilterメソッドについて ニャンソ 12/12/24(月) 21:24 回答
【73360】Re:AdvancedFilterメソッドについて kanabun 12/12/25(火) 0:05 発言
【73362】Re:AdvancedFilterメソッドについて ニャンソ 12/12/25(火) 20:34 お礼
【73361】Re:AdvancedFilterメソッドについて UO3 12/12/25(火) 10:39 発言
【73363】Re:AdvancedFilterメソッドについて ニャンソ 12/12/25(火) 20:54 回答
【73364】Re:AdvancedFilterメソッドについて UO3 12/12/26(水) 9:53 発言
【73366】Re:AdvancedFilterメソッドについて ニャンソ 12/12/26(水) 19:46 お礼
【73369】Re:AdvancedFilterメソッドについて UO3 12/12/27(木) 12:33 発言
【73371】Re:AdvancedFilterメソッドについて ニャンソ 12/12/27(木) 22:03 回答
【73372】Re:AdvancedFilterメソッドについて UO3 12/12/27(木) 22:10 発言
【73379】Re:AdvancedFilterメソッドについて ニャンソ 12/12/28(金) 21:00 回答
【73373】Re:AdvancedFilterメソッドについて UO3 12/12/27(木) 22:15 発言
【73380】Re:AdvancedFilterメソッドについて ニャンソ 12/12/28(金) 21:02 回答
【73382】Re:AdvancedFilterメソッドについて ニャンソ 12/12/28(金) 22:00 発言
【73385】Re:AdvancedFilterメソッドについて ニャンソ 12/12/29(土) 20:11 回答
【73374】Re:AdvancedFilterメソッドについて kanabun 12/12/28(金) 11:23 発言
【73375】Re:AdvancedFilterメソッドについて kanabun 12/12/28(金) 11:42 質問
【73376】Re:AdvancedFilterメソッドについて UO3 12/12/28(金) 12:05 発言
【73377】Re:AdvancedFilterメソッドについて kanabun 12/12/28(金) 19:37 発言
【73378】Re:AdvancedFilterメソッドについて kanabun 12/12/28(金) 20:05 発言
【73381】Re:AdvancedFilterメソッドについて ニャンソ 12/12/28(金) 21:56 回答
【73383】Re:AdvancedFilterメソッドについて kanabun 12/12/29(土) 9:31 発言
【73384】Re:AdvancedFilterメソッドについて kanabun 12/12/29(土) 9:40 発言
【73386】Re:AdvancedFilterメソッドについて ニャンソ 12/12/29(土) 21:23 回答
【73387】Re:AdvancedFilterメソッドについて kanabun 12/12/29(土) 21:58 発言
【73388】Re:AdvancedFilterメソッドについて ニャンソ 13/1/2(水) 21:17 回答
【73390】Re:AdvancedFilterメソッドについて kanabun 13/1/3(木) 0:26 発言
【73391】Re:AdvancedFilterメソッドについて ニャンソ 13/1/3(木) 20:39 回答
【73392】Re:AdvancedFilterメソッドについて kanabun 13/1/3(木) 23:11 発言
【73396】Re:AdvancedFilterメソッドについて ニャンソ 13/1/4(金) 20:59 回答
【73409】Re:AdvancedFilterメソッドについて kanabun 13/1/5(土) 19:04 発言
【73428】Re:AdvancedFilterメソッドについて ニャンソ 13/1/7(月) 21:05 回答
【73429】Re:AdvancedFilterメソッドについて kanabun 13/1/7(月) 23:27 発言
【73451】Re:AdvancedFilterメソッドについて ニャンソ 13/1/11(金) 20:54 回答
【73452】Re:AdvancedFilterメソッドについて kanabun 13/1/11(金) 23:09 発言
【73477】Re:AdvancedFilterメソッドについて ニャンソ 13/1/14(月) 20:07 回答
【73488】Re:AdvancedFilterメソッドについて kanabun 13/1/15(火) 9:39 発言
【73508】Re:AdvancedFilterメソッドについて ニャンソ 13/1/16(水) 21:17 回答
【73511】Re:AdvancedFilterメソッドについて kanabun 13/1/16(水) 22:51 発言
【73521】Re:AdvancedFilterメソッドについて ニャンソ 13/1/17(木) 20:46 回答
【73522】Re:AdvancedFilterメソッドについて kanabun 13/1/17(木) 21:58 発言
【73525】Re:AdvancedFilterメソッドについて ニャンソ 13/1/17(木) 22:47 回答
【73389】Re:AdvancedFilterメソッドについて ニャンソ 13/1/2(水) 21:26 回答
【73365】Re:AdvancedFilterメソッドについて kanabun 12/12/26(水) 9:54 発言
【73367】Re:AdvancedFilterメソッドについて ニャンソ 12/12/26(水) 20:06 回答
【73368】Re:AdvancedFilterメソッドについて kanabun 12/12/26(水) 21:09 質問
【73370】Re:AdvancedFilterメソッドについて ニャンソ 12/12/27(木) 21:49 回答
【73359】Re:AdvancedFilterメソッドについて ニャンソ 12/12/24(月) 21:25 質問

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