目次:
ビデオ: ExcelPro体験版:おさとエクセルの非公開動画「SUMPRODUCT関数」 2024
ワークブックで名前付きセルと範囲をたくさん使用すると、Excelが各名前の詳細をリストする方法がないことに驚くかもしれません。 [名前マネージャ]ダイアログボックスに役立つ情報が表示されますが、この情報を印刷可能な方法で表示する方法はありません。
ここに提供されているVBAコードは、任意のワークブックで定義されている名前を示す有用なレポートを生成します。
<! - 1 - >例題レポート
ここでは、名前レポートの例を示します。
新しいワークシート上に作成されたレポートには、各名前について次の情報が含まれます。
-
Name: 名前。
-
RefersTo: 名前の定義。通常、これはセルまたは範囲になりますが、名前でも式を定義できます。
<! - 2 - > -
セル: 指定された範囲に含まれるセルの数。名前付き数式の場合、このフィールドには#N / Aが表示されます。
-
範囲: 名前のスコープ - ワークブックまたは名前が有効な特定のワークシートの名前。
-
非表示: 名前が非表示の場合はTrueです。非表示の名前は、いくつかのアドイン(ソルバーなど)によって作成され、[名前マネージャ]ダイアログボックスには表示されません。
<! - 3 - > -
エラー: 名前に誤った参照が含まれている場合はtrue。
-
リンク: クリックすると、名前付き範囲がアクティブになるハイパーリンク。セルまたは範囲を参照する名前のみがリンクを含みます。
-
Comment: 名前のコメント(存在する場合)。
VBAコード
このコードを使用するには、Alt + F11キーを押してVisual Basic Editorをアクティブにします。次に、Insert→Moduleを選択して、新しいVBAモジュールを挿入します。コードをコピーして、新しいモジュールに貼り付けます。
Sub GenerateNameReport() 'ワークブック内のすべての名前のレポートを生成します。'(テーブル名は含みません)Dim n As Name Dim Row As Long型名CellCount As Variant 'ActiveWorkbookの場合は終了します。名前。 Count = 0 Then MsgBox "アクティブなブックには定義された名前がありません。 "Exit Sub End If 'ActiveWorkbookの場合はブックが保護されていると終了します。 ProtectStructure Then MsgBox "ブックが保護されているため、新しいシートを追加できません。 "Exit Sub End If 'レポートActiveWorkbookの新しいシートを挿入します。ワークシート。アクティブシートを追加します。移動後:=シート(ActiveWorkbook。Sheets。Count)ActiveWindow。 DisplayGridlines = False 'タイトルの最初の行( "A1:H1")を追加します。範囲でマージ( "A1")。 Value = "Name Report for:"&ActiveWorkbook。名。フォント。サイズ= 14.フォント。ボールド= True。 HorizontalAlignment = xlCenter End With 'タイトル範囲の第2行を追加します( "A2:H2")。範囲でマージ( "A2")。 Value = "Generated"&Now。 [Range: "A4:H4"] =配列( "名前"、 "RefersTo"、 "セル"、 "スコープ"、 "隠し"、 "エラー"、 "リンク"コメント ") 'Loop = 4 On Error次のFor EachをActiveWorkbookで再開します。名前行=行+ 1 '列A:名前nの場合。名前のように "*! * "Then Cells(Row、1)=分割(n。Name、"! ")(1) 'シート名を削除するElse Cells(Row、1)= n。名前End If '列B:セルを参照する(Row、2)= "'"&n。 RefersTo '列C:セル数CellCount = CVErr(xlErrNA)'名前付き式の戻り値CellCount = n。 RefersToRange。 CountLargeセル(Row、3)= CellCount '列D:スコープn。名前のように "*! (行、4)=置き換える(セル(行、4)、 "'、" ")セル名(行、4)=分割(名詞"! ")(0) 'アポストロフィを除くElse Cells(Row、4)= "Workbook" End If'列E:非表示の状態セル(Row、5)= Not n。 Visible 'Column F:エラーのある名前のセル(Row、6)= n。 RefersTo Like Like "* [#] REF! * "'列G:アプリケーションではないハイパーリンク。 IsNA(Cells(Row、3))次にActiveSheet。ハイパーリンク。 Add _ Anchor:=セル(Row、7)、_ Address:= ""、_ SubAddress:= n。 Name、_ TextToDisplay:= n。 Name End If '列H:コメントセル(行、8)= n。コメント次へn 'テーブルをActiveSheetに変換します。 ListObjects。 _ SourceType:= xlSrcRange、_ Source:= Range( "A4")を追加します。 CurrentRegion '列幅( "A:H")を調整します。 EntireColumn。 AutoFit End Sub
レポートの生成
GenerateNameReportプロシージャを実行すると、レポートはアクティブブックの新しいワークシートに生成されます。コードは、レポートの名前を含むブックにある必要はありません。
このコードが役立つ場合は、個人用マクロブックに保存するか、アドインを作成することができます。