Excel VBA質問箱 IV

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

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


12918 / 13644 ツリー ←次へ | 前へ→

【7951】セルの値が名前になるフォルダを作成したい。 井上 03/9/25(木) 10:11 質問
【7952】Re:セルの値が名前になるフォルダを作成した... つん 03/9/25(木) 10:40 回答
【7965】Re:セルの値が名前になるフォルダを作成した... 井上 03/9/25(木) 15:09 質問
【7966】Re:セルの値が名前になるフォルダを作成した... つん 03/9/25(木) 15:19 回答
【7969】Re:セルの値が名前になるフォルダを作成した... 井上 03/9/25(木) 16:07 質問
【7970】Re:セルの値が名前になるフォルダを作成した... つん 03/9/25(木) 16:26 回答
【7972】Re:セルの値が名前になるフォルダを作成した... 井上 03/9/25(木) 16:35 お礼

【7951】セルの値が名前になるフォルダを作成した...
質問  井上  - 03/9/25(木) 10:11 -

引用なし
パスワード
   こんにちは。
早速ですが、質問があります。
今開いているBOOK内のセルの値を名前にしたフォルダを作成し、同じBook内の別のセルに入っている値をファイル名にして保存するマクロを作成したいのですが、何か良い方法はありますでしょうか?
フォルダ作成、ファイル保存のそれぞれはなんとなく分かるのですが、セルの値を利用する方法がまったくわかりません。
アドバイスをお願いします。

【7952】Re:セルの値が名前になるフォルダを作成し...
回答  つん E-MAIL  - 03/9/25(木) 10:40 -

引用なし
パスワード
   井上 さん、こんにちは

フォルダやファイルの作成がわかるなら、
フォルダ名や、ファイル名を指定するところを、セルの値を設定してやればいだけですよん。

 Worksheets("Sheet1").Range("a1").Value

だいたいこんな感じで

Sub test()

  Dim strDir As String
  
  strDir = "C:\WINDOWS\デスクトップ\" & Worksheets("Sheet1").Range("a1").Value

  MkDir strDir
  
  ThisWorkbook.SaveAs Filename:=strDir & "\" & Worksheets("Sheet1").Range("a2").Value
  

End Sub

すでに、同名のフォルダとかあるとエラーになるので、実際にはそのへんのエラー処理を入れが方がいいと思います。

【7965】Re:セルの値が名前になるフォルダを作成し...
質問  井上  - 03/9/25(木) 15:09 -

引用なし
パスワード
   つんさん

素早い回答ありがとうございました。
こちらで、頂いた例のとおりやってみたのですが、どうしてもMkDirのところで"パスが見つかりません。"と出てしまいます。やり方に問題があるのでしょうか?
ちなみに作成した物は、

Sub FileSave()

  Dim strDir As String
 
  strDir = "C:\WINDOWS\デスクトップ\納品請求書\" & Worksheets("請求書").Range("AF2").Value

  MkDir strDir
 
  ThisWorkbook.SaveAs Filename:=strDir & "\" & Worksheets("請求書").Range("D4").Value

となります。(ごめんなさい。そのまま使わせていただきました。)
デスクトップ上に納品請求書というフォルダはすでに作成されており、その中にWorksheets("請求書").Range("AF2").Value に入っている値を入れたいと思っています。

【7966】Re:セルの値が名前になるフォルダを作成し...
回答  つん E-MAIL  - 03/9/25(木) 15:19 -

引用なし
パスワード
   井上 さん

>こちらで、頂いた例のとおりやってみたのですが、どうしてもMkDirのところで"パスが見つかりません。"と出てしまいます。やり方に問題があるのでしょうか?
>ちなみに作成した物は、

こちらで井上さんのコードを実行してみました。
ちゃんと、動作しましたよ。
OSが違うんじゃないかな?
井上さんは何ですか?
私は、98なんです。
98と、XPとか2000じゃ、デスクトップの場所が違うから、

「C:\WINDOWS\デスクトップ」

ここでアウトになります。

【7969】Re:セルの値が名前になるフォルダを作成し...
質問  井上  - 03/9/25(木) 16:07 -

引用なし
パスワード
   つんさん

原因がわかりました(なんとなく)。フォルダ名に入るセルが表示形式が日付だとダメなようです。
今回は請求書を作成した日付をフォルダ名にしたかったんです。
ただ、=TODAY()をそのまま請求書作成日にすると、次に開いた時に日付が変わってしまうんで、=TODAY()の値をリストの候補にしておけば、リストから選択するだけで作成日の日付が入れられるし、次開いても日付は変わらないしと思って・・・。そこまではうまくいったんですが、その後欲が出て今回のようになりました。
もっとはやく説明すべきでした。
なんどもなんども本当にごめんなさい。

日付をフォルダ名に入れることは出来ないんでしょうか?

【7970】Re:セルの値が名前になるフォルダを作成し...
回答  つん E-MAIL  - 03/9/25(木) 16:26 -

引用なし
パスワード
   井上 さん

それじゃ、これでどうですか?

Sub FileSave()

  Dim strD As String
  Dim strF As String
  Dim strDir As String
  
  strD = Replace(Worksheets("請求書").Range("A1").Value, "/", "/")
  
  strDir = "C:\WINDOWS\デスクトップ\納品請求書\" & strD

  MkDir strDir
  
  strF = Replace(Worksheets("請求書").Range("A2").Value, "/", "/")

  ThisWorkbook.SaveAs Filename:=strDir & "\" & strF

End Sub

日付には「/」が入ってて、それはファイル名には使えないので、全角に変換してます。

【7972】Re:セルの値が名前になるフォルダを作成し...
お礼  井上  - 03/9/25(木) 16:35 -

引用なし
パスワード
   やった!できた!出来ました!!
ありがとうございます。やっと出来ました。
これからは、もう少し勉強してから質問に来ます。
貴重なお時間を割いていただきありがとうございました!!

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