- ベストアンサー
EXCEL 日付データの貼り付けについて
こんにちは。初歩的な質問なのですが解決できず、相談させて頂きます。開いているexcelファイルに、別のexcelファイルの更新日付を入力したいと思っております。 そこで、VBAで FileDateTime という関数を利用して、日付を取得する所までは理解出来たのですが、エクセルのA1列に、その取得した値を貼り付けする方法が分かりません。 初心者なりに色々調べてみたのですが、解決策が分からず・・ よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
今までここに記載していたコードだけでしたらエラーにはなりません。他に何かあるのではないですか。 エラーになったときにデバッグとか出て選択したらどこが選択されてますか? 念のためにシートを指定してみてください。 Sheets("Sheet1").Range("A1").Value = FileTime
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
BookOpenイベントの中で、下記のようなコードを入れてはどうですか? ポイントは具体的にシート名を指定することです。 ’-- Activesheetにような指定は避け、暗黙のActivesheetにしないこと、をやってみては。 ’=== Sub Sample() Dim a As Date a = FileDateTime("C:\Users\XX\Documents\条件付き書式YY.xlsx") ’←指定のフルパス名 MsgBox a & vbCrLf & _ Year(a) & "年" & vbCrLf & _ Month(a) & "月" & vbCrLf & _ Day(a) & "日" & vbCrLf & _ Hour(a) & "時" & vbCrLf & _ Minute(a) & "分" & vbCrLf & _ Second(a) & "秒" & vbCrLf & _ Format(a, "aaaa") & vbCrLf & _ Format(a, "ggge年m月d日") '---- Worksheets("Sheet1").Range("A1") = a Worksheets("Sheet1").Range("A1").NumberFormatLocal = "ggge年mm月dd日hh時mm分ss秒 " End Sub 日付・時刻書式は、よく確認を。 参考 https://www.tipsfound.com/excel/03003 セル幅は広くとること。 === >その取得した値を貼り付けする方法が分かりません。 判らないというよりも、 自分で実行して、エラーが出てたのではないかと思うのですが、それを隠さず、具体的に書いて質問すべきでしょう。
お礼
ありがとうございます。 This workbook の中にすべて入れると、上手く起動ました。 記載方法については、不慣れで失礼いたしました。 次回よりそのように記載いたします。
- kkkkkm
- ベストアンサー率66% (1719/2589)
> 何か足りない気がするのですが・・ 何が足りないのかはご自身にしか分からないと思いますが・・・
補足
申し訳ございません、単体で動かしてみると確かに動きました。 EXCELを開いた際に 自動で更新されるように、 This workbook に Private Sub workbook_open() Call 更新日時の貼付 End Sub と記載して上で実行すると、 'range'メゾットは失敗しまいた、'_Global’オブジェクト とエラーメッセージが出てきて困っているのですが、 これは 回答頂いたVBAが何か不足しているというわけではないのでしょうか? 少し標題と質問がずれてしまい、申し訳ございません。
- kkkkkm
- ベストアンサー率66% (1719/2589)
Range("A1").value=取得した日付のデータ で試してみてください。 セルの書式は日付で。
補足
このような形でしょうか? 何か足りない気がするのですが・・ Sub 更新日時の貼付() Dim FileTime As Date FileTime = FileDateTime("C:\データ.xlsx") Range("A1").Value = FileTime End Sub
お礼
ありがとうございます。 シート指定してみましたが、ダメでした。 エクセルの問題かと思い、新規作成したエクセルで試してみましたがやはり上手くいきません・・。 デバックは、Range の所で発生しているので、ここかと思っていたのですが、私の所だけ動作がおかしいのであれば、他の何かですかね。。