[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『フォルダ内のファイルのヘッダー情報を取得』(なめこ)
どこか忘れましたが、フォルダー内のファイル名の一覧を書き出すソースが
あって、便利なので使わせて貰っていたのですが、ヘッダー情報も書き足す
ように出来るでしょうか?(Excel2003 WindowsXP)
B C D E
No ハイパーリンク ファイル名 ヘッダー(右)
↑ ここに
標準モジュール
'---------------------------
Sub filName()
Dim MyF As String
'前回のデータをクリアー
Range("A4:F200").Select
Selection.Clear
'ファイル名の取得
Dim myRow As Long
myRow = 4
MyF = Dir(ThisWorkbook.Path & "\*")
Application.ScreenUpdating = False
If MyF <> "" Then
Do Until MyF = "" Cells(myRow, "C").Select 'ハイパーリンク Cells(myRow, "B").Value = myRow - 3 Cells(myRow, "D").Value = MyF 'ファイル名
ActiveSheet.Hyperlinks.Add Anchor:=Selection, _ Address:=Cells(myRow, "D").Value, TextToDisplay:="●"
MyF = Dir() myRow = myRow + 1 Loop
End If
'並べ替え
Range("C4:D100").Select
Selection.Sort Key1:=Range("C4"), Order1:=xlAscending, Header:=xlNo, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlStroke
'罫線
Range("B4:D100").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlHairline .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlHairline .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlHairline .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlHairline .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlHairline .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlHairline .ColorIndex = xlAutomatic End With Range("D3").Select
End Sub
「ファイルに含まれるSheet1のヘッダー」なら存在します。
したがって、シートが複数あれば、ヘッダー情報は複数存在します。
「特定の名前のシート」が対象となる全てのブックにあるのならば、
シート名を指定して取得することは出来ますが、
何らかの手段でそのブックを開く必要があります。
シート名は各ブックで特定できますか?
(各ブックにシートが必ずひとつ、ということなら問題にはなりません)
問題点2
たとえば、次のようなコードでメッセージボックスに左ヘッダーを表示することは出来ます。
MsgBox ActiveSheet.PageSetup.LeftHeader
ですが、ボタンで設定する「ページ数」や「シート名」などは制御コードで取得されるので、
&P とか、 &A とか一見何のことか判断しづらいものも含まれます。
例えば「印刷枚数」をヘッダーから取得したい、というご希望でも
ヘッダー情報からは「&N」という制御コードしか取得できません。
で、問題となるのは、「ヘッダーから得たいと思っている情報は何ですか」ということです。
つまり、その情報がヘッダーから取得できるものとは限らない、ということです。
(みやほりん)
ご回答ありがとうございます。
書き方がまずかったですね、シートのヘッダーのことです。
シート名を取得してとのことですが、ファイルを開かずに
複数シートのヘッダー情報一括書き換えが出来るマクロが
実際に存在するため、その逆の取得が出来るものかと
思った次第です。
ヘッダーから得たいと思っている情報は何かとのことですが、
書類のヘッダーに作成日などを付けて、この日付で最新の版
の書類かどうかを管理している私の台帳と照合しています。
フォーマットは多数の方が都合に合わせて書き換えて日付を
更新しています。更新した場合は報告してくれるのですが
忘れる方も多々いるため、確認作業が大変です。
書類のフォーマットは一箇所のフォルダ内に保管されている
ので、前述のマクロに追加できたらいいなと思いました。
(なめこ)
>書類のヘッダーに作成日などを付けて
これはユーザーが「ヘッダーに日付に相当する文字列」を直接入力している、
ということですか?
そういう作業をちゃんとやっているかどうか、確認をしたい、ということ?
もし必ずやらなければいけないことなら、ヘッダーの設定自体を
自動的、強制的にマクロで行ったほうが、後の心配が無いような気がします。
「都合に合わせて書き換えて」っていうのがネックになるかもしれませんが。
(みやほりん)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.