質問: 住所録のデータのリンクについて (a)住所録の作成 シート1には b2セル:会社名、c2セル:住所、d2セル:電話番号 e2セル:有効期限のデータを入力しています。 (データ内容は随時、追加・変更があります。) a2セルに 五十音で見出しをつけています。「あ」「い」・・・ シート2の名前を「あ」にした場合、シート1の「あ」で始まる会社名をリンクさせたい。 シート1の「あ」のすべてがシート2の行にどんどん増えていくようにしたいのです。 (b)あるいは シート2「あ」、シート3「い」、シート4「う」・・・・・と五十音順に設定 シート2「あ」には、「あ」から始まる会社名 a2セル:あ、b2セル:会社名、c2セル:住所、d2セル:電話番号、e2セル:有効期限のデータを入力 以降のシートにも、「い」から始まる会社名・・・を入力 シート1に各シートのデータを集めてリンクさせたいのです。 (会社名の数が、各シート毎によって差があります。) 今から作成していきますので、どちらの方法でもいいのですが・・・ なぜ集計するのかというと、「有効期限」の確認をしたいためです。 たとえば、h23年において、有効期限が切れている会社の名前を知りたいのです。 お教えくださいますようお願い申しあげます。
回答: こんばんは! >たとえば、h23年において、有効期限が切れている会社の名前を知りたいのです の部分の意味が判らないので、 >(a)住所録の作成 だけの方法です! vbaでの一例です。 sheet1でデータを入力・削除等編集するものとし、 sheet2以降はあ・い・う・・・のようにすでに名前が入った50sheetあるとします(「ん」のsheetは必要ないと思いますが) ↓の画像のようにsheet1にコマンドボタンを配置し、編集後コマンドボタンをクリックすると 50音別にsheet1のデータを各sheetにコピー&ペーストするようにしてみました。 尚、あ~最後のsheetまで操作が繰り返されますのでそれなりに時間がかかるかもしれません。 sheet1にコマンドボタンを配置 → デザインモードでコマンドボタンをダブルクリック → vbe画面が出ますので ↓のコードをコピー&ペーストしてみてください。 private sub commandbutton1_click() dim i, j as long dim ws as worksheet set ws = worksheets("sheet1") columns(1).insert for i = 2 to cells(rows.count, 3).end(xlup).row if cells(i, 2) <> "" then cells(i, 1) = cells(i, 2) else cells(i, 1) = cells(i - 1, 1) end if next i i = cells(rows.count, 1).end(xlup).row for j = 2 to worksheets.count range(cells(1, 1), cells(i, 6)).autofilter field:=1, criteria1:=worksheets(j).name columns("b:f").copy worksheets(j).activate worksheets(j).cells(1, 1).select activesheet.paste activesheet.columns("a:e").autofit activesheet.cells(1, 1).select ws.select selection.autofilter next j ws.cells(rows.count, 3).end(xlup).offset(1, -2).select ws.columns(1).delete end sub 尚、コマンドボタンをダブルクリックした時点で最初の行と最終行が表示されますので 1行目と最終行は必要ありません。 こんなんではどうでしょうか?m(__)m