人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルのマクロに関する質問です。少しややこしいので300ポイント差し上げます。

あるデスクトップのフォルダにさまざまなデータが入っています。

また、あるエクセルの列に、さまざまなファイル名がかかれています。例えば

test1.pdf
test2.pdf
test3.pdf

エクセルの各セルを参照して、書かれているファイル名のファイルがそのフォルダに存在すれば、隣に同じ名前を出力し、存在しなければ、”不明”と出力するプログラムを書きたいです。例えば

test1.pdf test1.pdf
test2.pdf 不明
test3.pdf test3.pdf

この場合test1.pdfとtest3.pdfは指定したフォルダに存在しましたが、test2.pdfは指定したフォルダに存在しませんでした。


このようなプログラムはどうしたらいいのでしょうか?
皆さんのお力を貸して下さい。よろしくお願いします。

尚確認するファイルは数千個あるため、できればファイルの存在を確認するだけで、ファイル自体はオープンしないプログラムが良いです。

●質問者: ReoReo7
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:PDF エクセル オープン セル デスクトップ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● llusall
●300ポイント ベストアンサー

こちらでいかがでしょうか?

ファイルの存在は「Dir」関数で調べます。


Sheet1に次のような感じでファイル名を記入

 AB
1test1.pdf 
2test2.pdf 
3test3.pdf 

標準モジュールに次の記述を貼り付けて実行してください。

Option Explicit

Sub Hatena()

    'ファイルのあるフォルダ

    Const FILE_PATH = "C:\Documents and Settings\XXXXXXX\デスクトップ\hatena" '■ここを設定

    'ファイル名

    Dim fname As String

    'A1セルを選択

    Range("A1").Activate

    'セルが空になるまで処理を続ける

    Do Until ActiveCell.Value = ""

        'ファイル名を取得

        fname = ActiveCell.Value

        'ファイルの有無をDIR関数で調べる

        If Dir(FILE_PATH & "\" & fname) = "" Then

            'ファイルが無いので、右となりのセルに不明をセット

            ActiveCell.Offset(0, 1).Value = "不明"

        Else

            'ファイルがあるので、右となりのセルにファイル名をセット

            ActiveCell.Offset(0, 1).Value = fname

        End If

        '下のセルに移動

        ActiveCell.Offset(1, 0).Activate

    Loop

End Sub

◎質問者からの返答

回答ありがとうございます。早速やってみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ