| ■No83067 (魔界の仮面弁士 さん) に返信 > 1,2.3日 とシートが追加されています 1 カンマ 2 ドット 3 日???
よくわかりませんが、ワークブックとしては 1 ファイルしかなく、 その中に日付別のシートが最大31シート生成されていくということでしょうか。
> 2017/2/28の場合 > \\server\shared\2月\ > を読み込み、書き込んでいる状態です。 末尾が \ ということは、「2月」というフォルダーになるのでしょうか。
数字は半角で、1桁月は02月ではなく2月表記で。
> 2017/3/1になると3月というファイルを取得しています 2017/02/28 の場合に「\\server\shared\2月\」という『フォルダー』で 2017/03/01 の場合に「3月」というファイルという『ファイル』なのですか?
ファイルだったら、"3月.xlsm" とか "3月.xlsx" とか "3月.xlsb" とかに なりそうなものですが、拡張子に関する表記が無いということは、 「3月というファイル」ではなく、 「3月というフォルダーの中にあるファイル」の書き間違いでしょうか。
> 月が替わると、取得を \\server\shared\2月\→ \\server\shared\3月\に手入力でコードを書き換えています 未だに仕様が読み取れないのですが、たとえば \\server\shared\3月\日報.xlsx に対する操作なら、
Dim dt As Date = Now Dim worksheetName As String = dt.Day & "日" Dim folderName As String = "\\serveer\shared\" & CStr(dt.Month) & "月\" Dim fileName As String = "日報.xlsx" Dim fullPath As String = System.IO.Path.Combine(folderName, fileName)
のようにすれば、変数 fullPath に "\\server\shared\3月\日報.xlsx" という 文字列をセットすることができます。
> この場合、if文 Select Case文でNow.Timeなどで、日付を取得して > 読み込むようにするのが一番正しいのか?? どういうコードをイメージしているのか分からなかったので、 それが正しいのかどうかを判断できそうにありません。
> 自動で検索して、3月に変わったら \\server\shared\3月を取得してほしいですが 検索、というのは、3月フォルダーの中にあるファイルを列挙する、ということでしょうか。 それとも、その中にさらにサブフォルダーがあって再帰的に探索したいということでしょうか。
フォルダー内のファイル名を列挙するのであれば、 My.Computer.FileSystem.GetFiles メソッドもしくは System.IO.Directory.GetFiles メソッドを使えば OK です。
ファイルの作成日や更新日なども調べる必要がある場合は、 My.Computer.FileSystem.GetFileInfo メソッドで列挙すれば OK です。 もしくは列挙したファイルを System.IO.File.GetLastWriteTime メソッドや System.IO.FileInfo クラスで調べてもよいでしょう。 |