プロが教えるわが家の防犯対策術!

VBで、ファイルの作成者名・更新者名・作成日時・更新日時を取得する方法を探しています。

作成日時・更新日時の方はAPIを使用すれば可能だと分かったのですが、
作成者名・更新者名の取得方法が見つかりません。

取得が可能かどうかも含めて、教えていただけませんでしょうか?
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

回答ではなくide1さんの反論っぽくなっちゃいますが、


「Windows には作成者の情報はありません。」といっても
それはファイルシステムに寄ると思います。
Fat16やFat32なら多分作成者情報は持たないと思いますが、
Win2000のNTFSならテキストファイルでも
作成者情報みたいなものはありました。
取得方法は不明ですが・・・。

もうすこし環境や条件など詳しく書くと回答しやすいと思いますよ。
ちなみにExcelであれば判りますが・・・。
    • good
    • 0

UNIXと異なり、Windows には作成者の情報はありません。


ただし、WordやExcelなどアプリケーションが独自に
作成者情報をもっている場合があります。
アプリケーションごとに取得方法が異なります。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qファイルを開かずにカスタムドキュメントプロパティを操作したい

初めて質問させていただきます。

エクセルファイルの「右クリックメニュー」-「プロパティ」-「カスタム」の情報をVBを使って操作する方法を探しております。

通常は、workbook.CustomDocumentPropertiesを利用するかと思うのますが、

Dim wb As Workbook

Set wb = workbooks.Open Filename:="c:\aaa.xls") '(1)
'Set wb = Workbooks("c:\aaa.xls") '(2)
'Set wb = CreateObject("c:\aaa.xls") '(3)

debug.print wb.CustomDocumentProperties("顧客")

(1)~(3)の方法でオブジェクトを取得した場合、
一度ファイルを開く行為が行われているようです。

しかしながら、私が「カスタムドキュメントプロパティ」を参照しようとしてるファイルにはパスワードがかかっていることがあります。
複数のファイルを一括で処理しようとした際にファイルを開くとパスワードを求められ、プログラムが停止してしまうのが不都合となります。

ただ、エクスプローラなどで「カスタムドキュメントプロパティ」の内容を見るときはファイルを開く動作が不要と思われます。
(少なくともパスワードは求められません。)
なんらかの方法があるかと思うのですが心当たりのある方、お助けいただければと思います。

初めて質問させていただきます。

エクセルファイルの「右クリックメニュー」-「プロパティ」-「カスタム」の情報をVBを使って操作する方法を探しております。

通常は、workbook.CustomDocumentPropertiesを利用するかと思うのますが、

Dim wb As Workbook

Set wb = workbooks.Open Filename:="c:\aaa.xls") '(1)
'Set wb = Workbooks("c:\aaa.xls") '(2)
'Set wb = CreateObject("c:\aaa.xls") '(3)

debug.print wb.CustomDocumentProperties("顧客")

(1)~(3)の...続きを読む

Aベストアンサー

こんにちは。

DSO を使えばよいと思います。以下は、その Verion 2.0 を使っています。

Sub ReadOfficeCustomProperties()
Dim FileName As String
'http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q224351
'DSO OLE Document Properties Reader 2.0 に参照設定
Dim DSO As DSOFile.OleDocumentProperties
Set DSO = New DSOFile.OleDocumentProperties
FileName = "c:\aaa.xls"
 DSO.Open sFileName:=FileName
 Debug.Print DSO.CustomProperties("顧客")
 DSO.Close
End Sub

Qコマンドプロンプトでファイルの作成者を知りたい

エクセルファイルを作成した人が誰なのか調べたいのですが、どのような方法がありますでしょうか?

慣れないながら、コマンドプロンプトで、エクセルファイルを最後に上書き保存をした人を調べることまではできましたが、エクセルファイルを新規に作成した人を調べる方法がわかりません。

初心者なので、やさしく教えていただければと思います。
何卒宜しくお願いいたします。

ちなみに
Windows XP
エクセル2003です。

Aベストアンサー

ファイルの格納場所指定が問題です。
カレントに無い場合は、ファイル名を必ずフルパス指定で実行してください。


[準備]
1.テキストエディタ(メモ帳)で、提示したサンプルコードをコピペし、
 *****.vbs(vbsの拡張子とする)
 例..sample.vbs 以降の説明では、sample.vbsで記載。

 補足..
  sample.vbsを適当なフォルダに格納してください。
  今回は、Cドラ直下にwk_sampleと言うフォルダを作成しそこに格納します。

2.プロパティ属性を確認したいEXCELファイルを準備する。
 補足..格納場所は何処でもokです。


[実行]
1.DOS窓を開きます。
 [全てのプログラム]-[アクセサリ]-[コマントプロンプト]

 C:\Documents and Settings\ユーザ名>

 ※hecunhehuiさんの質問がコマンドプロンプトでとあるので、DOS窓は問題無いですよね!

2.DOS窓にコマンドを記載します。
 記載時にファイル名はフルパスで記載してください。
 補足..入力が面倒な場合は、sample.vbs及び、該当EXCELファイルを
    ドラック&ドロップで、DOS窓に移動すると、フルパスでファイル名が展開されます。

 ~(省略)\ユーザ名>cscript c:\wk_sample\sample.vbs c:\~(省略)\xxx.xls [ENTER]


[前提]
EXCELがInstallされているPCでのみ実行可能です。
理由..
  Set objExcel = CreateObject("Excel.Application") 行でEXCELを起動しているので

[確認した事]
■下記環境で確認しました。
 1.XP(Pro) sp3, Excel2007
 2.XP(Pro) sp3, Excel2003

■下記Excelファイルを確認しました。
 拡張子が、xls(2003ブック), xlsx(2007ブック)

ファイルの格納場所指定が問題です。
カレントに無い場合は、ファイル名を必ずフルパス指定で実行してください。


[準備]
1.テキストエディタ(メモ帳)で、提示したサンプルコードをコピペし、
 *****.vbs(vbsの拡張子とする)
 例..sample.vbs 以降の説明では、sample.vbsで記載。

 補足..
  sample.vbsを適当なフォルダに格納してください。
  今回は、Cドラ直下にwk_sampleと言うフォルダを作成しそこに格納します。

2.プロパティ属性を確認したいEXCELファイルを準備する。
 補足.....続きを読む

Q作成者・最終更新者の名前を修正するには

Office2010を使用しています。私ら(富士通ユーザー)が作成・最終更新を行うと必ず『FJ-USER』と表示されます。ほかにも富士通のPCを使う同僚らも同じく表示されるようで、誰が作成、最終更新を行ったのかわからない状態があります。ユーザの表示を変えるにはどうしたらよろしいでしょうか?

よろしくおねがいします

Aベストアンサー

>スタートボタンをクリックしてもファイル→オプション・・・というのになかなかたどり着けません…

スタートボタンは全く関係ありません。
Excelを開いて、左上のファイルボタンより以下の操作します。


ファイル→オプション→基本設定のタブで、ユーザー名を変更してOKしてみて下さい

Qフルパスから最後のディレクトリ名を取得したい。

vb.netなのですが、例えば
c:\aaa\bbb\ccc\ddd\eee\fff.exe
というフルパスがあったとして、
eeeというディレクトリ名を取得したいのですが、
何か良い方法はないでしょうか。
それぞれのディレクトリ名の文字数や階層数は
決まっていないのですが、オススメの方法が
ありましたら、教えて頂けると助かります。

Aベストアンサー

MessageBox.Show(IO.Path.GetFileName(IO.Path.GetDirectoryName(myPath)))

IO.Path の GetDirectoryName でフォルダのフルパスを取得して、さらに IO.Path の GetFileName で最終フォルダ(またはファイル)の名前を取得。

QExcelのセルにユーザー名を表示する方法

こんにちわ。Excelのセルに使用しているユーザー名を表示する関数はありませんか?お知りの方、宜しくお願いします。

Aベストアンサー

ユーザー名とは、コンピュータにログオンしているユーザ名か、ツール>オプション>全般の「ユーザー名」で指定されているユーザ名かどちらでしょう。(後者はOfficeをインストールするときに指定するので、ログオンユーザ名と同じとは限りません)

どちらにしろ、標準の関数では無理なので、ユーザ定義関数を作ります。
Alt+F11でVBAの画面を開き、「挿入」>「標準モジュール」を選択します。Module1というのができて、右側にそのモジュールの入力画面になります。

ここで、右側に、

Function LoginName() As String
  LoginName = CreateObject("WScript.Network").UserName
End Function

Function ExcelUserName() As String
  ExcelUserName = Application.UserName
End Function

をコピーし、Excelに戻ります。

任意のセルで、
=LoginName()
とするとログオンユーザ名が表示され、
=ExcelUserName()
とするとExcelに登録されているユーザ名が表示されます。

ユーザー名とは、コンピュータにログオンしているユーザ名か、ツール>オプション>全般の「ユーザー名」で指定されているユーザ名かどちらでしょう。(後者はOfficeをインストールするときに指定するので、ログオンユーザ名と同じとは限りません)

どちらにしろ、標準の関数では無理なので、ユーザ定義関数を作ります。
Alt+F11でVBAの画面を開き、「挿入」>「標準モジュール」を選択します。Module1というのができて、右側にそのモジュールの入力画面になります。

ここで、右側に、

Function LoginNa...続きを読む

QExcelで更新日時と更新者を表示させる

Excel97で、ファイルの最終更新日時と最終更新者を任意のセルに表示させようとしています。

組込み関数では無理なようなので、VBAで関数を作成し始めました。
日時については、FileDateTime(パス名)で日付のシリアル番号を表示させることができましたが、これをセルの書式設定ではなく、VBA内で日付型にさせたいのです。
更新者は、BuiltinDocumentProperties(7)というのを使用するようですが、記述方法がまったくわかりません。

VBAは初心者です。
Functionステートメントを使用していますがこれ自体は間違いないでしょうか。

ご指導願います。

Aベストアンサー

これでどうでしょう。

以下のようにすると、
=Nichiji("C:\test.xls")
結果:yyyy/mm/dd hh:mm:ss
と言う風に表示されます。

サンプル:
Function Nichiji(strFilePath) As String
Dim strDate As String
strDate = FileDateTime(strFilePath)
Nichiji = CStr(strDate)
End Function

QExcelファイルのプロパティの前回保存者名を変更する方法。

以前自分のパソコンで作成したExcelデータを会社のパソコン上で再加工しました。プロパティを開いて作成者の名前をチェックしてみると、作成者は私自身(beaurah)になってるのですが、その下の前回保存者の名前が全然違う人の名前(会社の人の名前)になって出てきます。このデータは100%私のオリジナルなので、その人はこのデータを全く触っていません。なので前回保存者にはなり得ません。(このパソコンはパスワード設定がしてあって、私以外の人は絶対立ち上げる事が出来ません。)にも拘わらずこの人の名前が前回保存者として出てくるのは何故なのでしょうか。因みに他に作成したデータや、ダウンロードしたエクセルデータを見てみましたが、やはり同じ人の名前が前回保存者の欄に出て来ました。前回保存者の名前を自分の名前に変更する事は出来ないのでしょうか。教えて下さい。宜しくお願い致します。

Aベストアンサー

>ワードの場合
「ツール」~「オプション」
「ユーザー情報」タブ
「名前」を変更すればいいと思います。

QVB.NETでのイベントの途中終了

VB.NETで、あるボタン(button1)をクリックさせた際にイベントを発生させます。

そのイベント内の処理途中で、イベントを終了させたいと思っていますが、どのように書いていいかわからず困っています。

どなたかおわかりの方お願いします。

Aベストアンサー

Exit ←これをイベント終了したいところで、使えばいいと思いました。

(例)
Private Sub Button1_Cilck・・・省略・・・
 '「Button1」をクリックしたときのイベント
 If Msgbox("イベントを途中終了しますか?",vbYesNo) = vbYes Then
  Exit Sub 'イベント途中終了
 End If
 Msgbox("イベントを途中終了しませんでした。")
End Sub

QDataGridViewで指定したセルの値を取得

こんにちは。

VB2008のDataGridViewで指定したセルの値を取得をする方法がわかりません。
どなたか教えてください。

Aベストアンサー

こんばんは.

 Dim Data As String
 Data = Me.DataGridView(0, 2).Value
 MsgBox(Data)

みたいな感じで取れないですかね???

QVB.NETでマウスクリックイベントを発生させたい。

VB.NETでformの外で任意の座標でマウスクリックイベントを発生させたい。
formにはボタンがあり、そのボタンを押すを固定位置(formの外)でマウスの左クリックイベントを発生させたいのですがどのような手段を使えばいいでしょうか。

環境 Windows XP,VB2008 Exoress

Aベストアンサー

こちらの記事がわかりやすくていいんじゃないかなー。
http://blog.livedoor.jp/akf0/archives/51560984.html


人気Q&Aランキング