- ベストアンサー
エクセルで作成した名簿の中から抽出したデータのみ別のブックに一覧作成し
エクセルで作成した名簿の中から抽出したデータのみ別のブックに一覧作成したいのです。 シート毎に個人情報を入力してますが、同時に別ブックにて氏名、住所、連絡先のみを一覧にしたいです。 個人情報のシートは ブック名「顧客情報詳細」の氏名欄がA6をブック「一覧表」のA1に。 住所はJ6→B1 連絡先J8→C3 といった具合です。 教えていただけないでしょうか? 宜しくお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
一例です。 (1)一覧表ブックを開く→Sheet1タブ上で右クリック→コード表示→VBE(右上画面)に以下のコードを貼り付け (2)コード内の「******」に顧客情報詳細ブックのパス名を設定→alt+F4キー押下(VBE画面終了)し、alt+F8キー押下→マクロを選択して実行 ◎サンプルコード表 Sub 一覧表を作成() Application.ScreenUpdating = False myBook = "C:\***********\顧客情報詳細.xls" i = 0 With Workbooks.Open(myBook) For Each k In .Worksheets i = i + 1 Sheet1.Cells(i, 1) = .Sheets(k.Name).Range("A6") Sheet1.Cells(i, 2) = .Sheets(k.Name).Range("J6") Sheet1.Cells(i, 3) = .Sheets(k.Name).Range("J8") Next .Close False End With Application.ScreenUpdating = True End Sub
その他の回答 (4)
- mu2011
- ベストアンサー率38% (1910/4994)
NO3です。 >パスはC:¥Documents and Settings¥~ ⇒パス名から「¥」が全角文字のように思えますが如何でしょうか。 半角でないとパス不正となりますのでご確認下さい。
お礼
結果は残念でしたがご親切に教えていただきありがとうございました。 おそらく私のやり方違いからだと思います。 今回教えて頂いてマクロをもっと活用したいと感じました。 勉強してみたいと思います。 ありがとうございました。
補足
半角にしてますが何度やってもできないんです(泣) エクセル2003ですが一覧表のシート1にて右クリック→コードの表示→貼り付けですね パス名の表示ですがエクスプローラ画面がわからないのでファイル検索をしてプロパティからコピーをし ファイル名を足しました。そこで何か違ってるのかも・・・。 エクスプローラー画面とはどこのことをさすのでしょうか。。。 何か面倒かけてますね。 どうぞお返事が大変でしたらあきらめます。
- mu2011
- ベストアンサー率38% (1910/4994)
NO3です。 >「******」を削除してパス名を貼り付ければいいのですね?パス名っって何ですか? ⇒顧客情報詳細.xlsまでのローカルディスクのアドレスです。 エクスプローラ画面のアドレス欄に表示されています。 例えば、マイドキュメントフォルダにあるファイルは、C:\Documents and Settings\??????\My Documents\ファイルとなります。 因みにサンプルコードでは、ローカルディスク(C)を想定にしましたので「C:\~」としていますが、ローカルディスク(D)ならば「D:\~」として下さい。
補足
残念ですができませんでした。 パスはC:¥Documents and Settings¥user¥デスクトップ¥顧客情報詳細.xls でしたので 貼り付けて設定しましたが 反映されません。どうしてでしょうか・・・?
- web2525
- ベストアンサー率42% (1219/2850)
お、私の回答にも間違いが >連絡先J8→C3 J8→C1 と考えています
- web2525
- ベストアンサー率42% (1219/2850)
はじめに一言: 通常であれば一覧表を先に作成し詳細は一覧から抽出して作る形が一般的かと思います。 次に確認: >連絡先J8→C3 これはJ8→C3の間違いではないですか? 以下の本題はJ8→C3と想定して考えています 本題: 1)顧客詳細情報のシート名が Sheet1、Sheet2、Sheet3・・・・・ のような形式ならばExcelの関数のみで実現可能 一覧表A1 =INDIRECT("[顧客情報.xls]sheet"&ROW()&"!A6") 一覧表B1 =INDIRECT("[顧客情報.xls]sheet"&ROW()&"!J6") 一覧表C1 =INDIRECT("[顧客情報.xls]sheet"&ROW()&"!J8") 後は下方向にドラッグして 2)顧客情報のSheet名が個人名などになっている場合 マクロでの対応になると思われますが、マクロは大丈夫? 2)の場合はそれほど難しいマクロではないですが希望の場合は回答までに時間が必要
お礼
遅くなりましたが マクロ活用で随分と便利になるものだと知りました。 今回結果は残念でしたが(精進します) 親切に教えていただきありがとうございました。
補足
すみません C1の間違いでした。 おっしゃる通りシート名は個人名になっております。 顧客情報のみを入力していましたが急遽DMも作成したいとの話に なり質問の運びとなりました。 マクロですか・・・恥ずかしながら全くわかりません。 たびたびお手数ですが引き続き教えてください。 よろしくお願いします。困ってます。
補足
すみません どうか教えてください。 >2)コード内の「******」に顧客情報詳細ブックのパス名を設定 「******」を削除してパス名を貼り付ければいいのですね?パス名っって何ですか? 引き続きお願いいたします。