[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『名前に日付の入ったブックの参照したいです』(momoka)
日付入りのエクセルファイルをマクロで開こうとしています。
そのなかで、ブックの名前に日付が入っている時どうやって参照していますか?
色々教えてもらって下記の内容までは出来ました…
Dim SetFile As String
Dim wbMoto As Workbook
Dim wbSaki As Workbook
Set wbMoto = ActiveWorkbook
SetFile = "C:\デスクトップ\データ-20230424.xlsx"
Workbooks.Open Filename:=SetFile, ReadOnly:=True, UpdateLinks:=0
Set wbSaki = Workbooks.Open(SetFile)
どこに日付の関数を付ければ良いのかわかりません。
あと日付が現在のものだけじゃなく過去のものだったりもします。
例として… 日付:2023/4/25 ファイル名:データ-20230420 という感じです。
私としては出来れば日付ではなく、数値として認識する方法だったり、日付の部分だけ参照時に無視する方法等あれば教えて頂きたいです。
どなたか、どうか教えて頂けませんでしょうか。
< 使用 Excel:Excel2019、使用 OS:Windows11 >
(名無し) 2023/04/25(火) 14:19:11
その日付も今現在のものだけではなくて、過去のものだったりも開く機会があるため、
もしできれば日付としてではなく、数値として参照する方法だったり、日付の部分だけ参照時に無視できる関数などあれば知りたいのです。
可能でしょうか…
(momoka) 2023/04/25(火) 15:37:51
(名無し) 2023/04/25(火) 15:44:07
https://www.excel.studio-kazu.jp/tips/0049/
(M) 2023/04/25(火) 15:47:46
対象フォルダ内には データ-日付.xlsx というファイルは一つしかなく、それを日付部分が何であれ開きたいということだろうか?
(ねむねむ) 2023/04/25(火) 15:48:43
やりたいことが分からないので、フローにしてもらえますか?
例えばこんな感じで、A、B列にデータがあるなら、 C2=A2&TEXT(B2,"-yyyymmdd") として、マクロからはC2を参照してあげれば、日付部分も8桁日付の文字列として取得できます。 マクロでやるなら Debug.Print [A2].Value & Format([B2].Vlaue,"-yyyymmdd") これでできるんじゃないでしょうか。 |[A] |[B] |[C] [1]|データ名|日付 |ファイル名 [2]|依頼書 |2023/4/25|依頼書-20230425 (稲葉) 2023/04/25(火) 15:55:08
色々調べていたのですが、知恵袋で一番近いものがありました。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12115065272
やりたいことはこれと同じなのですが、下記の関数の場合、今現在のyyyymmddしか出せないみたいなんですよね
下記が知恵袋のベストアンサーさんから参照したものです。
SetFile = "C:\TEST\テストデータ" & Format(NOW,"YYMMDD") & ".xlsx"
これの、Format(NOW,"yyyymmdd")の部分を、過去のyyyymmddである場合でも参照したいのです。
可能でしょうか。
度々の質問失礼致します。
(momoka) 2023/04/27(木) 13:38:17
SetFile = "C:\デスクトップ\データ-20230424.xlsx" を SetFile = Dir("C:\デスクトップ\" & "データ名*.xlsx") にしたらどうなりますか?(「データ名」の部分は適当に変えてね)
(名無し) 2023/04/27(木) 14:27:15
(もこな2) 2023/04/27(木) 18:36:03
>(ねむねむ) 2023/04/25(火) 15:48:43 に下記の返信なら (ねむねむ)さんのおっしゃっていることで間違いございません。
一つしかにゃいなら
>マクロに頼らず直接開けば済む話でしょ。(MM) 2023/04/27(木) 17:05:57 となるが〜ね。
>ブックの名前に日付が入っている時どうやって参照していますか? マクロで開くも、関数でするもいっぱいあるですよ
目的がわからんので、どうやってもマクロで開きたいのか? 関数でもよいのかによりますが
>関数などあれば知りたいのです。
フォルダーが山ほどあって、目的のファイルを すぐに開きたいならフルパスをセルに張り付けて ハイパーリンク関数でクリック一発よびだしゃ〜んよ
あるよ〜ん...一例ですん https://office-hack.com/excel/function-hyperlink/
リスト化するとどれでもすぐにファイルを開けるから 便利だよねん。
|[A] |[B] |[C] |[D] [1]|フルパス |フォルダ |ファイル名 |参照リンク [2]|C:\デスクトップ\データ-20230424.xlsx|C:\●●(△△)|●●.xlsx |Excel [3]|C:\デスクトップ\データ-20210425.xlsx|C:\●●(△△)|●●.xlsx |Excel
D2の式=HYPERLINK(A2,"Excel") 下にコピーすると呼び出し準備完了でございますよ。
検索で
フルパス一括取得 VBA とか、もしくは フォルダ内のファイル名を一括書き出しVBA とか検索すると、山ほど参考マクロがでてくるのでありんすよ。
関数でも...ファイルパスを取得することができますよ、 CELL関数、FIND関数、LEFT関数 などなど
一例
VBAを使わずに、フルパスからファイル名のみ・パスのみを取得する https://qiita.com/nomico/items/be7d3150cc4cfa5c297e
ファイルの保存場所やフォルダパスを取得表示する関数と数式 https://qwerty.work/blog/2021/01/excel-function-path.php
とにかく、目的を明確にして欲しいにゃんよ。
・呼び出して開いたファイルを別ファイル30枚にデータをコピーしたい ←これならマクロだし ・簡単に開いて、見つけれるようにしたいなら ←これなら関数で十分だし
よ〜わかんですので、頑張ってくださいませ。
(あみな) 2023/04/27(木) 18:55:17
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.