Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10992 / 13646 ツリー ←次へ | 前へ→

【18784】セル参照でCSVファイルを開く minnow 04/10/11(月) 16:09 質問[未読]
【18785】Re:セル参照でCSVファイルを開く かみちゃん 04/10/11(月) 16:52 回答[未読]
【18788】Re:セル参照でCSVファイルを開く←解決しま... minnow 04/10/11(月) 18:09 お礼[未読]

【18784】セル参照でCSVファイルを開く
質問  minnow E-MAIL  - 04/10/11(月) 16:09 -

引用なし
パスワード
   3連休かけても分からない初心者です。
【質問です】
年月に応じ名前が変わるCSVファイルをセル参照で開くには、
どうすればよいでしょうか。
【状況と途中経過】
例えば2004/7月のCSVファイルは「K040703」というのが
会社で使っているソフトウエアから作成されます。
「--0407--」の部分が毎月規則的に変わるので、
ファイルを開くボックスを使わずに開きたいと思います。
手始めに、ワークシート上のセルに関数で該当月のファイル名を表示し、
「読込対象ファイル」と名前を付けました。
下記のとおり、しどろもどろに書いたのですがわかりません。
【こんなことする理由】
毎回同じファイル名「KYUFU.csv」(固定なら何でも可)を付けて、
「居宅集計フォルダ(=同じフォルダ内)」に保存したいのです。
エクセルの「データ」→「外部データの取り込み」機能で、
クエリをかけて抽出や並び替えをしたものを別シートで集計することが目的です。
「外部データの取り込み」は取り込むファイル名を固定して使うため、
ファイル名が変動すると使えません。
そこで、ファイル名を固定したいと考えたのですが・・・
--------------------------------
【失敗の試作】
Sub 開き名前KYUFUで保存する()

Dim vntFilenames As Variant
  Set vntFilenames = "C:\居宅集計フォルダ\" & ("読込対象ファイル名")
  Workbooks.Open Filename:=vntFilenemes
  ActiveWorkbook.SaveAs Filename:="C:\居宅集計フォルダ\KYUFU.csv", FileFormat:=xlCSV _
    , CreateBackup:=False
  ActiveWindow.Close
End Sub

【18785】Re:セル参照でCSVファイルを開く
回答  かみちゃん  - 04/10/11(月) 16:52 -

引用なし
パスワード
   こんにちは。かみちゃんです。

>例えば2004/7月のCSVファイルは「K040703」というのが
>会社で使っているソフトウエアから作成されます。
>「--0407--」の部分が毎月規則的に変わるので、
>ファイルを開くボックスを使わずに開きたいと思います。

実際どのような処理をしたいのかがわからないので、一例です。
たとえば、次のようにすると、
"K" & Format(Now(),"yymmdd")
マクロを実行する日(例として2004/10/11)を利用した文字列(K041011)を取得することができます。
文字列は、そのままファイル名に使えます。

あとは、「年月日」をどのように与えるのかが問題になるかと思います。
たとえば、どこかのセルに年月日が書かれているので、そのセルを参照したいとか。
ちなみに、その例で、A1セルに年月日が書かれている場合は、
"K" & Format(Range("A1").Value,"yymmdd")
とすれば、いいと思います。

【18788】Re:セル参照でCSVファイルを開く←解決し...
お礼  minnow E-MAIL  - 04/10/11(月) 18:09 -

引用なし
パスワード
   ▼かみちゃん さん:
ありがとうございます! 解決しました。
開きたいファイル名をセル参照する時の書き方が初めてわかりました。
「Format」を用いるんですね。
名前つきセルには「K040703」と関数で表示してあるので、日付の変換は不要でした。
こんなふうに解決しました。もっと早く相談すればよかったです。

Sub 開き名前KYUFUで保存する()
  Workbooks.Open Filename:= _
   "C:\居宅集計フォルダ\" & Format(Range("読込対象ファイル名"))
  ActiveWorkbook.SaveAs Filename:="C:\居宅集計フォルダ\KYUFU.csv",    FileFormat:=xlCSV _
    , CreateBackup:=False
  ActiveWindow.Close
End Sub


>たとえば、次のようにすると、
>"K" & Format(Now(),"yymmdd")
>マクロを実行する日(例として2004/10/11)を利用した文字列(K041011)を取得することができます。
>文字列は、そのままファイル名に使えます。

10992 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free