エクセルVBAについて質問です。

Dドライブに「はてな」という名前のテキストファイルがあります。その中に「本日の☆☆」という言葉が書いてあります。その「☆☆」の部分を作業した日時に置換するマクロを作ってください。
ただし作業した日時が2006年9月15日の午後4時28時だった場合、「09/15/2006 04:28:24 PM」という形で表示するようにしてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/10/29 21:44:05
  • 終了:2006/10/30 01:27:50

回答(2件)

id:Mook No.1

Mook回答回数1312ベストアンサー獲得回数3912006/10/30 00:02:46

ポイント35pt

こんな感じでしょうか。

Const baseFile = "D:\はてな"
Const backupFile = "D:\はてな.bak"

Sub setDate()
    Dim inFile As Object
    With CreateObject("Scripting.FileSystemObject")
        .copyFile baseFile, backupFile
        Set inFile = .OpenTextFile(backupFile)
        With .CreateTextFile(baseFile)
            .write Replace(inFile.ReadAll(), "☆☆", _
                Format(Now, "dd/mm/yyyy hh:mm:ss AM/PM"))
            .Close
        End With
    End With
End Sub

VBA 日付・時刻関数

一応元のファイルを、バックアップしておくようにしました。

id:taroemon

ご回答ありがとうございます。

僕の環境で上記のマクロをコピペして、実行すると、

「.copyFile baseFile, backupFile」の部分で

エラーが出ます。

おそらくこのマクロで良いのだと思うのですが、

どうしたら良いか教えてください。

それとバックアップファイルはとてもありがたいのですが、

今のところ必要ないのでバックアップを作らないマクロをお願いします。

2006/10/30 00:43:32
id:Mook No.2

Mook回答回数1312ベストアンサー獲得回数3912006/10/30 01:00:23

ポイント35pt

うーん、こちらではエラーにならないのですが・・・。

とりあえず、バックアップ無し版です。

Const baseFile = "D:\はてな"

Sub setDate()
    Dim inFile As Object
    Dim txtData As String
    With CreateObject("Scripting.FileSystemObject")
        With .OpenTextFile(baseFile)
            txtData = .readAll
            .Close
        End With
        With .CreateTextFile(baseFile)
            .write Replace(txtData, "☆☆", _
                Format(Now, "dd/mm/yyyy hh:mm:ss AM/PM"))
            .Close
        End With
    End With
End Sub

先頭で定義したファイルのパスはあっていますか。

(はてな.txt とかではないですか?)


今回の例では、下記の設定は不要ですがこのモジュールを使っています。

FileSystemObject

id:taroemon

再度のご回答ありがとうございます。

「はてな.txt」になってました。

拡張子を変更することで無事うまくいきました。

2006/10/30 01:27:20

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません