Excel VBA質問箱 IV

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

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


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

【78766】マクロで保存したい 北風 17/1/18(水) 13:38 発言[未読]
【78767】Re:マクロで保存したい β 17/1/18(水) 14:03 発言[未読]
【78768】Re:マクロで保存したい 北風 17/1/18(水) 15:37 発言[未読]
【78769】Re:マクロで保存したい β 17/1/18(水) 18:15 発言[未読]
【78770】Re:マクロで保存したい β 17/1/18(水) 18:16 発言[未読]
【78771】Re:マクロで保存したい 北風 17/1/19(木) 13:46 お礼[未読]

【78766】マクロで保存したい
発言  北風  - 17/1/18(水) 13:38 -

引用なし
パスワード
   下記コードでファイル名を付けて保存していますがダイアログボックスが、表示され都度保存ボタンを押しますがマクロで保存するようにしたいのですが。

Sub セルの値をファイル名にする()
Dim fm As String
Dim fs As Variant
ChDrive "S:\TTT\わい\"
ChDir "S:\TTT\わい\"
With ThisWorkbook.ActiveSheet
 fm = .Range("E24").Value & "(" & .Range("H24").Value & ")"
End With
fs = Application.GetSaveAsFilename(fm, "MicrosoftExcelブック(*.xls),*.xls", , "ファイルを保存する", "保存")
If fs = False Then End
ThisWorkbook.SaveAs fs
End Sub

宜しくお願いします

【78767】Re:マクロで保存したい
発言  β  - 17/1/18(水) 14:03 -

引用なし
パスワード
   ▼北風 さん:

保存フォルダ、保存ファイル名は決まっているのですから ダイアログボックスを開く必要はなく
直接保存すればいいのですが?

それとも、保存フォルダも保存ブック名もダイアログ上で変更したいということですか?

それと、拡張子が xls ですから、実行環境は xl2003以前ということですね?

あと、SaveAs は、今開かれている、このマクロブックを名前をつけて保存します。
実行後、エクセル画面には元のマクロブックは残っていません。
新しく作られたブックが残っています。

一方、SaveCopyAs というのがあります。
これは、マクロブックはそのままで、『裏で』新しい名前のブックを作成保存します。
この場合、新しいブックはエクセル画面上には登場しません。

どちらがご希望ですか?

それと、質問とは関係ないことですけど、If fs = False Then End

これでも不具合は発生しませんが

If fs = False Then Exit Sub

こうしておいたほうがいいですよ。
今回のコードでは全く同じなんですが、今後、複雑な構成のマクロを組み立てていくときに
End ステートメント を使っていると、保守フェーズで苦労しそうですから。

【78768】Re:マクロで保存したい
発言  北風  - 17/1/18(水) 15:37 -

引用なし
パスワード
   ▼β さん:
>▼北風 さん:
>
>保存フォルダ、保存ファイル名は決まっているのですから ダイアログボックスを開く必要はなく
>直接保存すればいいのですが?
>
>それとも、保存フォルダも保存ブック名もダイアログ上で変更したいということですか?
>
>それと、拡張子が xls ですから、実行環境は xl2003以前ということですね?
>
>あと、SaveAs は、今開かれている、このマクロブックを名前をつけて保存します。
>実行後、エクセル画面には元のマクロブックは残っていません。
>新しく作られたブックが残っています。
>
>一方、SaveCopyAs というのがあります。
>これは、マクロブックはそのままで、『裏で』新しい名前のブックを作成保存します。
>この場合、新しいブックはエクセル画面上には登場しません。
>
>どちらがご希望ですか?
>
>それと、質問とは関係ないことですけど、If fs = False Then End
>
>これでも不具合は発生しませんが
>
>If fs = False Then Exit Sub
>
>こうしておいたほうがいいですよ。
>今回のコードでは全く同じなんですが、今後、複雑な構成のマクロを組み立てていくときに
>End ステートメント を使っていると、保守フェーズで苦労しそうですから。


βさん何時もありがとうございます。
ダイアログボックスを開く必要はなく、直接保存の方法でお願いいたします。
また、貴重なご指摘も有難うございます。

【78769】Re:マクロで保存したい
発言  β  - 17/1/18(水) 18:15 -

引用なし
パスワード
   ▼北風 さん:

Sub Test()
  Dim fm As String
  With ThisWorkbook.ActiveSheet
    fm = "S:\TTT\わい\" & .Range("E24").Value & "(" & .Range("H24").Value & ").xls"
  End With
  ThisWorkbook.SaveAs fm
End Sub

【78770】Re:マクロで保存したい
発言  β  - 17/1/18(水) 18:16 -

引用なし
パスワード
   ▼北風 さん:



単純に、直接保存をしています。
ただ、xl2003の環境がないので、試してはいません。
たしか、この書き方で充分だったような記憶です。

【78771】Re:マクロで保存したい
お礼  北風  - 17/1/19(木) 13:46 -

引用なし
パスワード
   ▼β さん
対応有難うございます。思い通りの仕組みでした
有難うございました


▼β さん:
>▼北風 さん:
>
>↑
>
>単純に、直接保存をしています。
>ただ、xl2003の環境がないので、試してはいません。
>たしか、この書き方で充分だったような記憶です。

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