EXIF情報を出力するマクロ

最近の書き込み件数: 今日 0件、昨日 0件
未読分:5件

最新20件 最新50件 最新100件 最新200件 200件以前
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)


Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応

近田 伸矢, 植木 悠二, 上田 寛

IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。

Message#5 2014年12月17日(水)12時41分
From: VBAジョニー
返事 削除 変更
> できれば、後半の方も教えていただけないでしょうか?

自分のトコだと動作してるみたいです。
強いて言うなら、

folPathの宣言はVariant型でないと、Namespace関数が受け取らないみたい。

1)
Dim folPath As String
  ↓
Dim folPath As Variant

そうすれば、Namespace関数に渡せるみたい。

2)
Set objFol = objShell.Namespace("〜")
  ↓
Set objFol = objShell.Namespace(folPath)

と、folpathに入るフォルダ名の「\」は重ねずに、末尾にも付けない。
マイドキュメントなんかの仮想フォルダは指定不可。

3)
folPath = "C:\hoge\hoge"

とか?
後は参考URLのソースをインデントや改行位置修正しただけです。

--
> irfanviewでEXIF情報を保持したまま
> 再圧縮をかけたものは

ちょっと、どういう操作なのか分かりません。
適当なExif情報持ったファイルが手元に無いですが、普通の画像で名前を付けて保存で圧縮率変えたものは、ファイルサイズは取得できました。


> なぜかうまくいかないのですがなぜでしょうか?

よくよく試すと、動作はするけどタイトルのみ出力され、ファイルの情報が出力されていませんでした。
見てみると、JpegExifオブジェクトに最初にファイル名渡す際に、フルパスが渡っていませんでした。
たまたま画像とExcelファイルをカレントフォルダで実行していたとかなら動作していたとか。
質問者さんの環境で、再圧縮したファイルが別のフォルダに出力されてるとかなら、タイトルのみで何も出力されないかも。

If objJpeg.InitSet(fileName) >= 0 Then
  ↓
If objJpeg.InitSet(tFolder & fileName) >= 0 Then

だと、どうでしょう?

Message#4 2014年12月17日(水)12時41分
From: おばあちゃん
返事 削除 変更
すいません、前半の方法で

デジカメで撮影したものを読み込ませるとうまくいくのですが
irfanviewでEXIF情報を保持したまま
再圧縮をかけたものはなぜかうまくいかないのですがなぜでしょうか?

Irfanview上では正常にEXIF情報は読み出せているのですが・・・

Message#3 2014年12月15日(月)21時35分
From: VBAジョニー
返事 削除 変更
前半だけ、

> ユーザー定義型は定義されていません
> と言われて実行することができません。

クラスが適切な名前で登録されていないからだと思います。

手順だと、
1) Alt+F11でVBA起動。
2) 左のプロジェクトエクスプローラ、VBAProject(ブック名.xlsm)を右クリック、挿入、クラスモジュール
  「Class1」クラスが挿入される。
3) Class1を左クリック、メニューの表示、プロパティウィンドウ(F4)
4) プロパティ - Class1のプロパティウィンドウで、(オブジェクト名)の「Class1」を「JpegExif」に変更。
5) 参考URLの後半、「JpegExifクラス」をJpegExifクラスのウィンドウに貼り付け。

以上でクラスの登録終了。

6) VBAProject(ブック名.xlsm)を右クリック、挿入、標準モジュール
  「Module1」が挿入される。
7) 参考URLの「JPEGファイルリスト作成」を貼り付け。

後は、エラーが出せてるなら実行できるハズ。

Message#2 2014年12月15日(月)21時15分
From: VBAマスター
返事 削除 変更
サイトを確認するとVBAの参照設定が必要なようですね。
下記が項目内用ですが、参照設定をされていますか?
おそらくVBAの参照設定がされていないので、オブジェクトが見つからないとでているんだと思います。

'要参照設定: Microsoft Office 10.0 Object Library

Message#1 2014年12月15日(月)21時11分
From: おばあちゃん
返事 削除 変更
JPEG画像のEXIF情報を読み取って、撮影日時を出力するプログラムを作りたいのですが

http://www.btinc.jp/vba_labo/study1.html

このページに書かれたものを実行しようとすると

Set objJpeg = New JpegExif

のところで、
ユーザー定義型は定義されていません
と言われて実行することができません。



http://blog.livedoor.jp/hamu1962/archives/51375817.html

このページに書かれたものを実行しようとすると

Set objFolItem = objFol.ParseName(tarFile)

のところで、
オブジェクト変数またはWithブロック変数が設定されていません。

と言われて実行することができません。


どうすればうまくいきますでしょうか?


それと、上記二つの方法はどちらの方がお勧めでしょうか?

最新20件 最新50件 最新100件 最新200件 200件以前
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降

ExcelのVBAについてのQ&A掲示板

↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください^^

VBAのInternetExplorer操作入門

↑ExcelのVBAをマスターできたら、エクセルVBAのIE(InternetExplorer)操作にも挑戦してみてください^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

エクセルVBAのステートメント

こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのオブジェクト

こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのプロパティ

こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのメソッド

こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのイベント

こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

dmb.cgi Ver. 1.068
Copyright(C) 1997-2014, hidekik.com