Excel VBA質問箱 IV

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

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


2562 / 13645 ツリー ←次へ | 前へ→

【67162】シートを名前をつけて別のブックへブック名を指定し保存 りんご 10/11/12(金) 16:58 質問[未読]
【67168】Re:シートを名前をつけて別のブックへブッ... よろずや 10/11/13(土) 6:54 回答[未読]
【67174】Re:シートを名前をつけて別のブックへブッ... りんご 10/11/14(日) 9:48 質問[未読]
【67192】Re:シートを名前をつけて別のブックへブッ... よろずや 10/11/14(日) 20:43 回答[未読]
【67197】Re:シートを名前をつけて別のブックへブッ... Jaka 10/11/15(月) 11:16 発言[未読]
【67206】Re:シートを名前をつけて別のブックへブッ... りんご 10/11/15(月) 20:12 質問[未読]
【67220】Re:シートを名前をつけて別のブックへブッ... Jaka 10/11/16(火) 9:38 回答[未読]
【67229】Re:シートを名前をつけて別のブックへブッ... りんご 10/11/16(火) 18:43 発言[未読]

【67162】シートを名前をつけて別のブックへブック...
質問  りんご E-MAIL  - 10/11/12(金) 16:58 -

引用なし
パスワード
   シート上のあるセル(A1)の文字をシート名(mm)とし、ブックの名前を指定してそこへシート(mm)を保存させる なんていうモジュールは作れるのでしょうか。

ブックの名前を指定しあけさせることは、そもそも可能なのかどうか。。。ブックはそのときそのとき変わるので指定したいのです。

【67168】Re:シートを名前をつけて別のブックへブ...
回答  よろずや  - 10/11/13(土) 6:54 -

引用なし
パスワード
   ▼りんご さん:
>シート上のあるセル(A1)の文字をシート名(mm)とし、ブックの名前を指定してそこへシート(mm)を保存させる なんていうモジュールは作れるのでしょうか。

もちろん可能です。
で、そのブックは既に存在するのか、新規ブックの名前を付けたいのか?

【67174】Re:シートを名前をつけて別のブックへブ...
質問  りんご  - 10/11/14(日) 9:48 -

引用なし
パスワード
   ▼よろずや さん:
>▼りんご さん:
>>シート上のあるセル(A1)の文字をシート名(mm)とし、ブックの名前を指定してそこへシート(mm)を保存させる なんていうモジュールは作れるのでしょうか。
>
>もちろん可能です。
>で、そのブックは既に存在するのか、新規ブックの名前を付けたいのか?

既存になる場合もあるし、新規ブックの場合もあるという形です。
既存の場合は、そのブック名がいつも同じではないので、ブック名をしてする必要が出てきます。その中へ、シート名をつけなおして保存させたいのです。

ここまで書いてみました。

Sub bookmaking()
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim strFilter As String
Dim strTitle As String

Set wb1 = Workbooks("【NEW】YYYY/MM/DD.xls") 

'wb1のブック名は「【NEW】YYYY/MM/DD」の形で日付がその時々で異なります。この日付も基本となるブック(wb2)内のあるシート(入金メモ)内の決まったセル(M1)にある日付からとる形にしたいと思っています。

Set wb2 = Workbooks("★★.xls")
If Range("A1").Value <> "" Then 

'このセルA1には、誰用の入金メモかの名前が入るようになっています。このA1の名前でシート名はつけ直すように以下で指定しています。

  rtn = MsgBox("Do you want to make a new book?", vbYesNo)
  If rtn = vbYes Then
    Workbook.Open Filename:=ThisWorkbook.Path & "\" & wb1 & ".xls"
    wb2.Sheets("入金メモ").Activate
    ActiveSheet.Copy Destination:=wb1.Sheets(1)
    ActiveSheet.Name = wb2.Sheets("入金メモ").Range("A1")
    wb1.SaveAs Filename:=ThisWorkbook.Path & "\" & "【NEW】" & wb1.Sheets(1).Range("M1").Value & ".xls"
  Else
    strTitle = "Select the Book."
    strFilter = "Excel File(*.xls),*.xls," & "全て(*.*),*.*"
    Workbook.Open Filename:=Application.GetOpenFilename(strFilter, 1, strTitle, blnmultiset)
    Exit Sub
  End If
Else
  MsgBox "No Fund name." & Chr(13) & Chr(13) & "Check the Fund Name, please."
End If

End Sub

よろしくお願いします。

【67192】Re:シートを名前をつけて別のブックへブ...
回答  よろずや  - 10/11/14(日) 20:43 -

引用なし
パスワード
   試していませんし、後始末もエラー処理も省略しています(-_-;)

Dim strFilter As String
Dim strTitle As String
Dim varFileName As Variant

Set wb2 = Workbooks.Open(Filename:="★★.xls")
If wb2.Sheets("入金メモ").Range("A1").Value <> "" Then
  rtn = MsgBox("Do you want to make a new book?", vbYesNo)
  If rtn = vbYes Then
    wb2.Sheets("入金メモ").Copy
    Set wb1 = ActiveWorkbook
    wb1.Sheets(1).Name = wb2.Sheets("入金メモ").Range("A1").Value
    wb1.SaveAs Filename:=ThisWorkbook.Path & "\" & "【NEW】" & Format(wb2.Sheets("入金メモ").Range("M1").Value, "YYYY/MM/DD") & ".xls"
  Else
    strTitle = "Select the Book."
    strFilter = "Excel File(*.xls),*.xls," & "全て(*.*),*.*"
    varFileName = Application.GetOpenFilename(strFilter, 1, strTitle, False)
    If varFileName = False Then
    Else
      Set wb1 = Workbooks.Open(Filename:=varFileName)
      wb2.Sheets("入金メモ").Copy Before:=wb1.Sheets(1)
      wb1.Sheets(1).Name = wb2.Sheets("入金メモ").Range("A1").Value
      wb1.Save
    End If
  End If
Else
  MsgBox "No Fund name." & Chr(13) & Chr(13) & "Check the Fund Name, please."
End If
End Sub

【67197】Re:シートを名前をつけて別のブックへブ...
発言  Jaka  - 10/11/15(月) 11:16 -

引用なし
パスワード
   おまけ。
>Workbooks("【NEW】YYYY/MM/DD.xls")
エラーになるならない以前にこの名前のブックが本当にあるのでしょうか????

試しに新規ブックを適当な名前で保存後、上記名前に変えてみてください。
2007以降は違うのかなぁ??

【67206】Re:シートを名前をつけて別のブックへブ...
質問  りんご  - 10/11/15(月) 20:12 -

引用なし
パスワード
   ▼Jaka さん:
>おまけ。
>>Workbooks("【NEW】YYYY/MM/DD.xls")
>エラーになるならない以前にこの名前のブックが本当にあるのでしょうか????
>
>試しに新規ブックを適当な名前で保存後、上記名前に変えてみてください。
>2007以降は違うのかなぁ??

どういう意味ですか?

【67220】Re:シートを名前をつけて別のブックへブ...
回答  Jaka  - 10/11/16(火) 9:38 -

引用なし
パスワード
   >どういう意味ですか?
ブック名には使えない文字があるという事です。
ブック名にスラッシュを追加してみると、他の使えない文字も解ると思います。

【67229】Re:シートを名前をつけて別のブックへブ...
発言  りんご  - 10/11/16(火) 18:43 -

引用なし
パスワード
   ▼Jaka さん:
>>どういう意味ですか?
>ブック名には使えない文字があるという事です。
>ブック名にスラッシュを追加してみると、他の使えない文字も解ると思います。


その事でしたか。確かにありますね。

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