• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:住所録のデータのリンクについて)

住所録のデータのリンクについて

このQ&Aのポイント
  • 住所録の作成について詳細な説明があります。シート1には会社名、住所、電話番号、有効期限のデータを入力し、五十音で見出しをつけています。シート2には「あ」から始まる会社名をリンクさせたいと考えています。
  • また、別の方法として、シート2からシート3、シート4と五十音順に設定し、各シートのデータを集めてリンクさせたいとも考えています。目的は、会社名の有効期限を確認するためです。
  • 今後の作業に向けて、どちらの方法を選ぶか迷っています。どちらの方法でも実現可能ですが、使いやすさやデータの集計方法などを考慮して選びたいと思っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! >たとえば、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

emeline
質問者

お礼

早速、VBAを利用したコードを作成していただきありがとうございます。 やはり、少し時間がかかるようですね。 有効期間というのは、運転免許の更新のようなものです。 以前に提出していただいております書類の、期間が切れている場合は 更新された新しい書類を提出していただくので、備忘のため、設定しています。