Excel VBAに効く Vitamin E
Excel VBA マクロ500連発<第2弾>(技術評論社)のインデックス[972002]
Excel VBA マクロ500連発<第2弾>(技術評論社刊)のインデックスをExcel表にしました。<第1弾>はCD-ROMにインデックスが入っていましたが、<第2弾>には入っていません。ハードディスクに保存して使用する場合のインデックスをリンク付きでExcel表にしました。
Excel VBAマクロ500連発(第2弾)Indexのダウンロード
圧縮ファイルには次の2つのファイルが入っています。
・ExcelVBAマクロ500連発(第2弾)Index.xls
・ExcelVBAマクロ500連発(第2弾)Index.htm
これらのファイルは
CD-ROMを丸ごとコピーしたフォルダに入れて使用します。これ以外のフォルダではリンクが機能しません。
ExcelVBAマクロ500連発(第2弾)Index.xls にはこのINDEXを作成したマクロを残してあります。順次Excel表を読み込む手順の参考にしてください。不要の場合は削除して少しでも軽い状態で使用してください。
【Source】
Sub MakeIdx()
  Const Folder = "j:\excel\500-2\book\"
  Dim file As String
  Dim bk As Workbook
  Dim i As Integer
  Dim j As Integer
  Dim w As String

  'エラーがあっても続行
  On Error Resume Next
  '読込むExcelのイベントを抑止
  Application.EnableEvents = False
  'ファイル名3文字+拡張子のExcelだけ読込(データのExcelは読まない)
  file = Dir$(Folder & "???.xls")
  With ThisWorkbook.Worksheets(1)
    Do Until file = ""
      i = i + 1
      'Excel読込み
      Set bk = Workbooks.Open(Folder & file)
      'タイトルに改行が含まれていたら1行に編集
      w = bk.Worksheets(1).Cells(4, 2).Value
      j = InStr(w, Chr$(&HA))
      If j > 0 Then w = Left$(w, j - 1) & Mid$(w, j + 1)
      'タイトルとファイル名をセルに書出し
      .Cells(i, 1).Value = w
      .Cells(i, 2).Value = file
      .Activate
      'シート保護を解除
      .Unprotect
      .Cells(i, 2).Select
      'ファイル名セルにリンク設定
      Selection.Hyperlinks.Add Anchor:=Selection, Address:="book\" & file
      bk.Close False
      file = Dir$
    Loop
    '列幅を調整
    .Columns("A:B").Select
    Selection.Columns.AutoFit
  End With
  Application.EnableEvents = True
  On Error GoTo 0
  Set bk = Nothing
End Sub

(UPD:02/02/09)