• 締切済み

【VBA】EXCELブックを開かずにファイルのプロパティを取得したい

VBAに関する質問です。 対象のエクセルブックを開かずに、エクセルファイルのプロパティ(タイルト名など)を取得する方法を教えてください。 「DSO」を使用すれば所得できることは分かりましたが、別の方法で取得することは可能でしょうか?できれば「DSO」をインストールしていないパソコンからでも取得できるようにしたいと思っています。 心当たりのある方、アドバイスいただければと思います。

みんなの回答

  • inajirow
  • ベストアンサー率0% (0/0)
回答No.2

下記で高速に情報取得可能です。 他にも色々と方法はあるようですが私はこの方法をおすすめします。 ちなみに、ファイル更新日はfileオブジェクトのDateLastModifiedでも取得可能ですが。ネットワークドライブ上のファイルを誰かが開いている場合、開かれた時刻が取得されてしまうため、DateLastModifiedは使用していません。 Sub test() Set o = GetObject("新規Microsoft Excel ワークシト.xls") a = o.BuiltinDocumentProperties.Item(1) b = o.BuiltinDocumentProperties.Item(7) c = o.BuiltinDocumentProperties.Item(12) Debug.Print a ''タイトル Debug.Print b ''最終更新者 Debug.Print c ''最終更新日 d = o.Sheets.Count Debug.Print d ''シート数 For Each oo In o.Sheets e = oo.Name Debug.Print e ''シート名 Next End End Sub

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

DSO って何? 本は開いて、読んで、その内容が分かるわけですが.... サンプル・解説サイトを探すキーワード [] 内 1. [ Shell.Application GetDetailsOf, ParseName ] ■ 関連参考ソース '// GetDetailsOf で調べられる項目の列挙 Sub test01()   Dim shl     As Object   Dim f      As Object   Dim nam     As String   Dim i      As Long   Set f = CreateObject("Shell.Application").NameSpace("C:\")   For i = 0 To 1000     nam = f.GetDetailsOf(Nothing, i)     If Len(nam) Then       Debug.Print "INDEX:=" & CStr(i);       Debug.Print vbTab;       Debug.Print "NAME:= " & nam     End If   Next    End Sub 2. [ BuiltinDocumentProperties ] 3. [ FileSystemObject ]   [ DateCreated, DateLastAccessed, DateLastModified, Size ]

関連するQ&A

  • VBAで、アクティブなBOOKのファイル名を取得し

    エクセルのVBAを使用して、選択されている、BOOKのファイル名を取得し、下記のように編集してA1セルに入れたいのですが、可能でしょうか? BOOKのファイル名が「大阪_たこ焼き_1234.xls」の場合 大阪_と.xlsをは省いて、「たこ焼き_1234」がA1セルに入るようにしたい。

  • VBA:ファイルプロパティの一部を取得したい。

    撮った写真の撮影日をファイル名にしようと考えています。カメラはキャノンで、ファイルプロパティの[概要]タブに詳細なプロパティが記述されており、そのなかに[カメラの撮影日]があります。それを取得したいのですがどうすればできるのでしょうか?あくまで撮影日で、作成日時とは違います。ファイルをコピーすると作成日時は変わってしまいあてにならないからです。VBA(エクセル)での操作でしかわからないので、VBA仕様でお答えいただければ助かります。

  • 【VBA】EXCELブックを開かずにシート名を取得したい

    VBAに関する質問です。 EXCELブックを開かずに、シート名を取得する方法を教えてください。 http://officetanaka.net/excel/vba/tips/tips29.htm ↑を見たのですが、具体的にどのようにしたらよいのかわかりません。 よろしくお願いします。

  • EXCEL VBA で現在開いているブックのファイル名を取得する方法

    EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。 作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。 このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。 常にファイル名を取得出来るVBAをどなたか、教えて下さい。

  • Excelブックのプロパティについて。

    Excelブックのプロパティについて。 ○詳細プロパティ<ファイルの概要<タイトル ○詳細プロパティ<ユーザ設定<プロパティ名 ○名前をつけて保存 この、上3つのタイトル、プロパティ名、名前をつけて保存の違いはなんでしょうか? どれも文書の名前に思えるのですが(^_^;) タイトルとプロパティ名は、ファイル名を忘れた時のキーワード検索するためのものでしょうか? 初歩的な質問で申し訳ありません。ご回答よろしくお願いしますm(_ _)m

  • VBA(エクセル)でアクティブファイル名の取得できますか?

    エクセルでVBAを使用して、自分自身のファイル名を取得できますか?そんなコマンドありますか? (Aと云うエクセルファイルにVBAを仕込み、自分自身がAというエクセルファイル名であることを、認識(取得)させることが出来るでしょうか) かなり素人ですので宜しく教示願います。

  • EXCELで複数のファイルを同じブック内で開きたい

    久しぶりにVBAを使用してやらせたいことがありますので、質問です。 複数のCSVファイルがあり、これを同じブック内のシートとして開くことは 出来ますでしょうか。 メニューから開くとして、それぞれのファイルを開くと、別々のブックにて開いてしまいます。 これを同じブックで、シート別に開かせたいのですが、出来ますでしょうか。 さらに、これをVBAでやりたいと考えております。 まず考えたのは、 ”Application.GetOpenFilename”です。 ただし、これを利用すると、別々のブックでしか開くことができませんでした。 次に考えたのが、”QueryTables.Add”を利用することです。 これだと、同一ファイル、同一シート内にデータを取り込むことができるので、 問題ないのですが、ファイル名を指定しなければなりません。 ファイルが変わるたびにVBAでパスを修正するのは大変ですので、 ”QueryTables.Add”のデータ取り込みでファイル選択ダイアログが開くような コードがあればよいと考えております。 ファイル選択のダイアログが開いて、そのファイルのパスが取得できるような コードにすれば、”QueryTables.Add”にてデータの取り込みができそうなのですが、 どうすればよいか思いつきません。 "Dialogs(wdDialogFileFind)"というものも見つけたのですが、うまくいきませんでした。 何か良い方法がありますでしょうか。 よろしくお願いします。 Dialogs(wdDialogFileFind)

  • Excel VBA でファイルが開かれているか確認する

    ExcelのVBAで、book1.xlsというファイルが現在開かれているか確認するにはどんなプロパティを使えばいいでしょうか? 実際にやりたい事は、book1.xlsに対して処理するマクロがあるのですが、そのbook1.xlsが開かれていなければ処理が出来ないのでマクロが入っているファイルを閉じる。というものです。

  • エクセル(VBA)のブック間でのコピーペーストについて

    こんにちは。VBA入門レベルのものですが、質問させてください。 ブックAとブックBを開いた状態にし、 ・ブックA⇒VBAを組む&データ貼付け先 ・ブックB⇒データコピー元 ブックBの特定セル(例:D10)からブックAの特定セル(例:E12)にコピー⇒貼付 する方法を探しています。 なお、ブックBは、ブック名とシート名が都度変わるので、「ブックAではない方の開いているエクセルファイルからデータをコピーし、ブックAに貼付ける」の構文にしたいです。 また、コピペの他に数式(イコール)で飛ぶ方式でもかまいません。 この内容でのVBAの記述方法が分かる方、どなたか教えて頂けますでしょうか。 すみませんがよろしくお願いいたします。 ※エクセル2003です。

  • Excel VBA別ブックのシートをコピーするには

    Excel2010のVBAで別ブックのシートをコピーしてくる方法 Excelファイル(C:\test\BOOK2.xls)のシート名が TESTというシートを自分のExcelファイル(C:\doc\BOOK1.xls)に コピーするにはどのように記述すればよいのでしょうか。 ・コピー先:自分のExcelファイル(C:\doc\BOOK1.xls)  VBAのコードがあるファイルです ・コピー元:C:\test\BOOK2.xlsのTESTシート  なお、TESTシートを持つ同じ名前(BOOK2.xls)のファイルが  別フォルダにもあります   Workbooks( )の引数にファイル名(BOOK2.xls)は指定できるのですが、 フルパス名(C:\test\BOOK2.xls)で指定できないので困っています。