[[20211019133832]] 『マルチtiffのページ数 取得』(たまりん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マルチtiffのページ数 取得』(たまりん)

いつもお世話になっております。
大量にあるマルチtiffのページ数を取得したいのですが
方法はありますか?
https://social.msdn.microsoft.com/Forums/ja-JP/39440a28-efdc-4074-8bb0-c075cbb05c33/tiff125011244912452125231239812506125401247225968123642146224471?forum=vbgeneralja
で紹介されている方法ではXP以降では使用できないようです
宜しくお願いいたします

< 使用 Excel:Office365、使用 OS:Windows10 >


 Tiffの仕様書を読んで、ページ数を求めるコードを書いてみては?
(´・ω・`) 2021/10/19(火) 14:38

 ちょっと自信なしです
 Type T_HeaderDecorder
    ByteOrder As String * 2     '  “II(4949) or MM(4D4D)
    TiffCode As Integer         '   = 42
 End Type

 Type T_Tag
    TagType(0 To 1) As Byte
    DataType(0 To 1) As Byte
    DataCount As Long
    Data(0 To 3) As Byte
 End Type

 Sub sample()
    Debug.Print GetPageNumber("ほげほげ.tif")
 End Sub

 Function GetPageNumber(TiffFileName As String)
    Dim header As T_HeaderDecorder
    Dim TagSize As Integer, Tag() As T_Tag, NextIFD As Long
    Dim pagecount As Long
    fn = FreeFile
    Open TiffFileName For Binary As fn
    Get fn, , header
    If header.ByteOrder <> "II" Then Close: Err.Raise 9999, , "バイトオーダーが違います", vbCritical
    If header.TiffCode <> 42 Then Close: Err.Raise 9999, , "Tiffファイルではありません", vbCritical
    pagecount = 0
    Do While Not EOF(fn)
        Get fn, , NextIFD
        If NextIFD = 0 Then Exit Do
        Seek #fn, NextIFD + 1
        pagecount = pagecount + 1
        Get fn, , TagSize
        If TagSize > 0 Then
            ReDim Tag(1 To TagSize)
            Get fn, , Tag
        End If
    Loop
    Close fn
    GetPageNumber = pagecount
 End Function
(´・ω・`) 2021/10/19(火) 15:31

(´・ω・`)さん
ページ数を取得できました
このVBAを使って何とか複数ファイルデータ取得をしてみます
ありがとうございました
(たまりん) 2021/10/19(火) 18:29

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.