アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

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

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

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

A 回答 (5件)

ファイルの格納場所指定が問題です。


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


[準備]
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ブック)
    • good
    • 0
この回答へのお礼

できました!
じつは言葉の意味がわからない箇所もあり、恐る恐るでしたが、
コマンドプロンプトに欲しかった情報が出てきた時には感動しました。

これもあなたさまのお力添えがあってこそです。
お時間を割いていただき、まことにありがとうございました。

お礼日時:2009/10/23 19:15

| これはエクセルのVBAですよね。


| VBAも少しは齧ったのですが、マクロの自動記録を改造する程度の知識しかなく、
| 折角書いていただいたプログラムも使い方がわからないでいます。

Excel VBAでは無く、VBScript(WSH)です。
ですから、テキストエディタで、バッチファイルの様に、添付したコードを
記載すれば良いんですよ!

補足..作成するファイル名は、sample.vbs(拡張子はvbsにしてください)


| まずこれは何を意味しているのかがわかりません。
| ' *-------------------------------------------------------*
| ' * EXCELファイルのプロパティを取得 *
| ' * *
| ' * ID : sample.vbs *
| ' * 使用方法 : X:\>cscript sample.vbs xxxxx.xls *
| ' *-------------------------------------------------------*
 ↑
 コメントです。


| それから、apu999さんから頂いたプログラムを、
| 使うまでの手順について確認させて下さい。

作成したsample.vbsのファイルをコマンドラインから、起動すれば良いんです。
>cscript sample.vbs xxxx.xls [ENTER]

補足..xxxx.xlsは、確認したいExcelファイル


[質問者様の前提を確認させてください。]
Excelファイルのプロパティの概要タブで確認出来る情報を取得したいと判断したのですが
間違っていますでしょうか?

[サンプルコードの補足]
サンプルコードは、プロパティ情報は、全て表示していますので、
インデックスを判断して、必要な情報のみ取得する様に直してください。
所有者  :インデックス 3
最終更新者:インデックス 7
    • good
    • 0
この回答へのお礼

丁寧なご回答本当ににありがとうございます。

まず私の前提についてですが、apu999さんがおっしゃられた通りです。
そして実は作成者と前回保存者を、プロパティで確認できることに、
今の今まで気づいていませんでした。
申し訳ありません。
先ほど自宅のPC(VISTA、エクセル2007)でエクセルファイルのプロパティを確認したら、
作成者と前回保存者が確認できて驚いた次第です。

ただ質問させていただいた時に提示した条件である、WINDOWS XP、エクセル2003は会社のPCなのですが、
こちらではプロパティに作成者と前回保存者が表示されてたかどうかは未確認なので明日以降確認することにします。


プロパティで確認できることがわかった以上、
もう特になにも問題は無いのですが、
ウィンドウズでできることの奥深さに興味が出てきたので、
もう少しお付き合いいただければ幸いに思います↓↓↓

apu999さんから頂いたプログラムですが、
折角詳しく使い方まで教えていただいているのですが、
まだよく理解できておらず、そもそもの知識不足を痛感しております。
勘を頼りに自分なりに使い方を考え使ってみましたがうまくいきませんでした。

もしよければ、下記の私の行った手順を指摘していただけませんでしょうか?

1、apu999さんのプログラムを、コメント欄から最終行までコピー
2、メモ帳を起動し貼り付け
3、保存時にファイル名をsample.vbsにする
4、sample.vbsを、Cドライブ>ユーザー>ユーザー名のフォルダに格納する。
※この手順については自信がありません。
コマンドプロンプトが上記ディレクトリからsample.vbsを探そうとしているようなのでここに格納してみました。
5、コマンドライン(これは、WINDOWSキー+Rで立ち上がるファイル名を指定して実行のことですよね?)で、cscript sample.vbs xxxx.xlsと記入しエンターを押す。

ここまですると、コマンドプロンプトが立ち上がりましたが、
エクセルファイルが開けませんでした
xxxx.xlsが見つかりませんと表示されたので、
xxxx.xlsファイルの保存場所が問題なのだと思い、
これも同じくCドライブ>ユーザー>ユーザー名に移動して再度試してみましたが、やはり同じメッセージが表示されました。

これは実はVISTA、エクセル2007で試していますので、それが問題なのかもしれません。

お礼日時:2009/10/22 20:02

> もしくは、dir/Qとdir/aということでしょうか?


> もしくはdir/Q/aということでしょうか?
dir /?
で、説明を読まれましたか。
dir /Q
でも、dir /qでも同じで、所有者を表示すると説明されています。
当然、cdコマンドで見たいファイルのディレクトリまで行く必要はあります。
コマンドプロンプトを開いたら、
c:\Documents and Settings\ユーザ名\_
というディレクトリです。
ひとつ上の
c::\Documents and Settings
のディレクトリに行くには、
cd ..
です。
これも詳しくは、
cd /?
で調べてください。
    • good
    • 0
この回答へのお礼

お手間とらせて申し訳ないです。
dir/?は確認しましたが、Qでもqでも同じだという記述はあったかなという感じです。
しかしyakan9さんのおかげで小文字も大文字も同じだということが理解できて勉強になりました。
ありがとうございます。

今度はcdについて少しずつ勉強したいと思います。
ありがとうございました。

お礼日時:2009/10/22 19:22

DOSコマンドで取得出来るか不明ですが、VBScriptを使用すれば取得出来そうです。



下記サンプルコードが意図した結果かは不明ですが、参考にしてください。
' *-------------------------------------------------------*
' * EXCELファイルのプロパティを取得 *
' * *
' * ID : sample.vbs *
' * 使用方法 : X:\>cscript sample.vbs xxxxx.xls *
' *-------------------------------------------------------*
Option Explicit
On Error Resume Next

Dim objExcel ' EXCEL オブジェクト
Dim objBook ' Book オブジェクト
Dim objPpty ' Property オブジェクト
Dim strFileName ' EXCELファイル名

' - コマンドラインパラメータの取得 -
strFileName = WScript.Arguments(0)

' - Fileの存在確認 -
If IsEmpty(strFileName) OR strFileName = "" Then
Wscript.Echo "Excelファイルが存在しませんでした。" & Err.Description & "(" & Err.Number & ")"
Wscript.Quit
Else
Wscript.Echo "Excelファイル=" & strFileName
End If

' - EXCELファイルの読み込みとプロパティ属性取得 -
Set objExcel = CreateObject("Excel.Application") ' EXCELの起動
If Err.Number = 0 Then
objExcel.Application.DisplayAlerts = False ' 保存確認ダイアログを非表示
Set objBook = objExcel.Workbooks.Open(strFileName) ' EXCELファイルのオープン
If Err.Number = 0 Then
For Each objPpty In objBook.BuiltInDocumentProperties ' プロパティを全て表示
WScript.Echo objPpty.Name & ": " & objPpty.Value
Next
objBook.Close
objExcel.Quit
Else
Wscript.Echo "Excelファイルを開けませんでした。" & Err.Description & "(" & Err.Number & ")"
End If
Else
Wscript.Echo "Excelを起動できませんでした。" & Err.Description & "(" & Err.Number & ")"
End If

Set objBook = Nothing
Set objExcel = Nothing
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
プログラムまで考えていただき、まことに感謝しています。

これはエクセルのVBAですよね。
VBAも少しは齧ったのですが、マクロの自動記録を改造する程度の知識しかなく、折角書いていただいたプログラムも使い方がわからないでいます。


まずこれは何を意味しているのかがわかりません。
' *-------------------------------------------------------*
' * EXCELファイルのプロパティを取得 *
' * *
' * ID : sample.vbs *
' * 使用方法 : X:\>cscript sample.vbs xxxxx.xls *
' *-------------------------------------------------------*



それから、apu999さんから頂いたプログラムを、
使うまでの手順について確認させて下さい。

・まず新規作成者を知りたいエクセルファイルを開きます
・VBAの編集画面を開きます
・メニューから、挿入>標準モジュールの挿入をします
・apu999さんに記述していただいたプログラムの
Option ExplicitからSet objExcel = Nothingまでをコピペします。
・Option Explicitの次の行に、SUBプロシジャー名()と記入します。
・実行します。

ここまであってますでしょうか?
先ほど思いつく限りここまでやったのですが、コンパイルエラーが出て実行できませんでした。

お礼日時:2009/10/21 20:33

dir /Q /a


ではだめでしようか。
dir /?
で、dirの説明が見れます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
dir/qを使って、ファイルの上書き者を確認することまではすでにできたのですが、新規作成者が知りたいのです。

yakan9さんのおっしゃられているのはdir/qでなくdir/Qでしょうか?
もしくは、dir/Qとdir/aということでしょうか?
もしくはdir/Q/aということでしょうか?

本当に初心者で理解できないでいます。

お礼日時:2009/10/21 20:21

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