[[20170520172516]] 『指定した日付のファイルを開いて処理を繰り返すに』(ひろ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『指定した日付のファイルを開いて処理を繰り返すには』(ひろ)

日付を持っているファイルsを日付指定して開いて、列をコピーして別ファイルに貼り付けたあと、またそのファイルsを開きたいのですがうまくいきません。Workbook.s.Activateで実行時エラー'424' オブジェクトが必要です になってしまいます。
ファイルsを置き換えないといけないのでしょうか。
ご教示いただければ幸いです。

Sub Macro1()

Dim s As String
Dim dt As Date

s = InputBox("年月日(例2017/4/25)")

If s = "" Then Exit Sub
If Not IsDate(s) Then
MsgBox "日付が正しくありません"
Exit Sub
End If

dt = DateValue(s)
s = "C:\パパ" & "\Book1_" & Format(dt, "yyyymmdd") & ".xlsx"
If Dir(s) = "" Then
MsgBox "ファイルみつからず"
Exit Sub
End If
MsgBox s & vbCrLf & "を開きます"
Workbooks.Open s

 Columns("B:B").Select
    Selection.Copy
    Windows("Book2").Activate
    Sheets("Sheet2").Select
    Range("B4").Select
workbook.s.Activate
    Range("I15").Select
    Selection.Copy
    Windows("Book2").Activate
    Sheets("Sheet2").Select
    Range("D5").Select

End With

End Sub

< 使用 Excel:Excel2013、使用 OS:Windows10 >


携帯からなので未確認ですが。

Workbooks(Dir(s)).Activate

ではどうなりますか?
(カリーニン) 2017/05/20(土) 18:11


ブックオブジェクトの指定の仕方とか問題ありますが、とりあえず整形しました。

Sub Macro1()

 Dim s As String
 Dim dt As Date

  s = InputBox("年月日(例2017/4/25)")

  If s = "" Or s = False Then Exit Sub
  If Not IsDate(s) Then
     MsgBox "日付が正しくありません"
     Exit Sub
  End If

  dt = DateValue(s)
  s = "C:\パパ" & "\Book1_" & Format(dt, "yyyymmdd") & ".xlsx"
  If Dir(s) = "" Then
     MsgBox "ファイルみつからず"
     Exit Sub
  End If
  MsgBox s & vbCrLf & "を開きます"
  Workbooks.Open s
  Columns("B:B").Select
  Selection.Copy
  Windows("Book2").Activate
  Sheets("Sheet2").Select
  Range("B4").Select
  Workbooks(Dir(s)).Activate
  Range("I15").Select
  Selection.Copy
  Windows("Book2").Activate
  Sheets("Sheet2").Select
  Range("D5").Select

'End With 'これは不要
End Sub
(カリーニン) 2017/05/20(土) 18:52


 >Windows("Book2")

 拡張子がありませんが、新規ブックでしたら、"Book2"の部分は都度変わってきますので
 これでは不都合があると思います。

 ブックのFullName等で明示的にブックオブジェクトを指定してやる必要があると思います。
(カリーニン) 2017/05/20(土) 18:57

 参考HPです。

http://excel-ubara.com/excelvba1/EXCELVBA353.html

 私のコードに不具合がありました。
 私のコードの
 Dim s As String
 を
 Dim s As Variant
 に変えて試してください。
(カリーニン) 2017/05/20(土) 19:07

 セルのコピー、転記の参考HPです。

 Office TANAKA - Excel VBA講座:セルの操作[セルのコピー]
http://officetanaka.net/excel/vba/cell/cell09.htm
(カリーニン) 2017/05/20(土) 21:20

カリーニンさま

連絡が遅くなりまして申し訳ございません。

ご指摘の通り、Book2の拡張子がなかったので止まってしまいましたが、拡張子をつけて、解決いたしました。
Workbooks(Dir(s)).Activateで指定することが分かりませんでした。
とっても勉強になりました。
また、参考HPまでお気遣いいただきまして、感謝申し上げます。
ありがとうございました。
(ひろ) 2017/05/21(日) 13:30


 ご呈示のコードは最終的にどのようなことを行いたいのでしょう?
 セルをコピーするのは2か所出てきてますが、貼り付ける部分があり
 ません。

 また、セルの転記をするのなら、SelectやAcvtivateは不要です。
 書式をコピーする必要がないのなら、

 ○.Value = □.Value

 のような感じで行けます。
(カリーニン) 2017/05/21(日) 13:41

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.