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

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

●質問者: taroemon
●カテゴリ:コンピュータ
✍キーワード:2006 2006年 24 28 pm
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Mook
●35ポイント

こんな感じでしょうか。

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 日付・時刻関数

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

◎質問者からの返答

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

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

「.copyFile baseFile, backupFile」の部分で

エラーが出ます。

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

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

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

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


2 ● Mook
●35ポイント

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

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

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

◎質問者からの返答

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

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

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

関連質問


●質問をもっと探す●



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