[[20210409220848]] 『転記先のブック名が変わっても開いて転記』(チョコ) ページの最後に飛ぶ

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

 

『転記先のブック名が変わっても開いて転記』(チョコ)

同じフォルダにある別のブックにデータを転記するのですが
毎月ブック名が変わるのでそのたびにマクロの指定先を変更しています。
ブック名が変わってもマクロの指定先を変更しなくていいような方法は
ありますか?
よろしくお願いします。

Dim wb As Workbook
Dim 行 As Variant

 On Error Resume Next
 Set wb = Workbooks("\2021年4月.xlsm")
 On Error GoTo 0
 If wb Is Nothing Then
    Set wb = Workbooks.Open(ThisWorkbook.Path & "\2021年4月.xlsm")
 End If

< 使用 Excel:Excel2011(Mac)、使用 OS:Windows10 >


ファイル名が違うときに、該当ファイルを特定できるようなヒントはありますか?
(半可通) 2021/04/09(金) 22:37

半可通さん

返信ありがとうございます。

同じフォルダにあって、毎月ブックの名前が変わります。
申し訳ないのですが特にヒントは思いつかないです。

(チョコ) 2021/04/09(金) 23:04


たとえば例にあるような日付限定なら、
Format(Date,"yyyy年m月")にすれば今日の日付から西暦年と今月の文字列を作れます。

同じフォルダにあるxlsxファイルが1つだけなら、Dir("フォルダパス\*·xlsx")で特定できます。

本当に法則性が何もなく特定できる方法がないなら、特定できる法則をつくってください。
(半可通) 2021/04/09(金) 23:25


あとコードの直書き換えではなくダイアログを開いて選ぶという方法もあります。

参考
http://officetanaka.net/excel/vba/tips/tips154.htm
(半可通) 2021/04/09(金) 23:39


半可通さん

色々ありがとうございます。

フォルダには転記元と転記先の2つのブックがあるのですが
2つだと下記はだめですよね?

("フォルダパス\*·xlsx")
(チョコ) 2021/04/09(金) 23:50


2つのうちどちらかがそのマクロが書いてあるファイルなら、
Thisworkbookでない方という形で特定可能だろうと思います。
(半可通) 2021/04/09(金) 23:55

マクロは転記元にあるのですがどんな感じのコードに
すればいいのでしょうか?

(チョコ) 2021/04/10(土) 00:07


片方(転記元)が.xlsmファイルでもう片方(転記先)が.xlsxファイルなら
xlsxファイルは1つしかないので容易に特定できると思います。

両方xlsmファイルなら、If文でThisworkbookと比較しましょう

(実際のところは、フォルダに本当に2つしかファイルがないのか調べたほうが良いと思います)
(半可通) 2021/04/10(土) 00:22


半可通さん

フォルダには転記元と転記先のエクセルファイル2つと
過去のエクセルファイルが入ったフォルダの3つがあります。

この条件だとどんな感じのコードを作ればいいのでしょうか?
どの辺をいじればいいのでしょうか?

 On Error Resume Next
 Set wb = Workbooks("\2021年4月.xlsm")
 On Error GoTo 0
 If wb Is Nothing Then
    Set wb = Workbooks.Open(ThisWorkbook.Path & "\2021年4月.xlsm")
 End If
(チョコ) 2021/04/10(土) 09:51

横からですが条件を後出しにしたり、すれ違い返答してないで提案されていることを検討してみては?

・ユーザーが自分で指摘できるようにする
・年月日からブック名を特定する
・フォルダ内に自ブックの他にエクセルブックが【1つ】しかないならそれだと特定する

既に↑の提案がされていているわけですが、どれも使えない状況なんですか?
(最後のは、後出し条件に書いてあった、過去のエクセルファイルとやらがあるみたいなので無理なんでしょうが)

(もこな2) 2021/04/10(土) 10:07


コメント返信:

[ 一覧(最新更新順) ]


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