Excel VBA質問箱 IV

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

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


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

【43194】上書き・名前をつけて保存・同時二箇所できますか とくちゃん 06/10/5(木) 15:28 質問[未読]
【43195】Re:上書き・名前をつけて保存・同時二箇所... ハチ 06/10/5(木) 15:47 発言[未読]
【43196】Re:上書き・名前をつけて保存・同時二箇所... Jaka 06/10/5(木) 16:01 発言[未読]
【43197】Re:上書き・名前をつけて保存・同時二箇所... とくちゃん 06/10/5(木) 16:07 発言[未読]
【43199】Re:上書き・名前をつけて保存・同時二箇所... ハチ 06/10/5(木) 16:49 発言[未読]
【43198】Re:上書き・名前をつけて保存・同時二箇所... とくちゃん 06/10/5(木) 16:11 発言[未読]
【43200】Re:上書き・名前をつけて保存・同時二箇所... Jaka 06/10/5(木) 16:51 発言[未読]
【43201】Re:上書き・名前をつけて保存・同時二箇所... とく 06/10/5(木) 17:04 発言[未読]
【43202】Re:上書き・名前をつけて保存・同時二箇所... Jaka 06/10/5(木) 17:28 発言[未読]
【43205】Re:上書き・名前をつけて保存・同時二箇所... とく 06/10/5(木) 20:20 お礼[未読]
【43207】Re:上書き・名前をつけて保存・同時二箇所... とく 06/10/5(木) 20:45 発言[未読]
【43215】Re:上書き同時二箇所保存できますか とくちゃん 06/10/6(金) 0:57 発言[未読]
【43216】Re:上書き同時二箇所保存できますか ハチ 06/10/6(金) 8:26 発言[未読]
【43217】Re:上書き同時二箇所保存できますか とくちゃん 06/10/6(金) 9:31 発言[未読]
【43218】Re:上書き同時二箇所保存できますか ハチ 06/10/6(金) 9:51 発言[未読]
【43220】Re:上書き同時二箇所保存できますか とくちゃん 06/10/6(金) 10:01 発言[未読]
【43222】Re:上書き同時二箇所保存できますか とくちゃん 06/10/6(金) 10:56 発言[未読]
【43223】Re:上書き同時二箇所保存できますか 立ち寄り 06/10/6(金) 11:18 回答[未読]
【43224】Re:上書き同時二箇所保存できますか とくちゃん 06/10/6(金) 11:45 発言[未読]
【43225】Re:上書き同時二箇所保存できますか 立ち寄り 06/10/6(金) 12:01 回答[未読]
【43235】Re:上書き同時二箇所保存できますか Jaka 06/10/6(金) 16:08 発言[未読]
【43226】Re:上書き同時二箇所保存できますか ハチ 06/10/6(金) 12:09 発言[未読]
【43227】Re:上書き同時二箇所保存できますか とくちゃん 06/10/6(金) 12:35 発言[未読]
【43229】Re:上書き同時二箇所保存できますか ハチ 06/10/6(金) 13:46 発言[未読]
【43241】Re:上書き同時二箇所保存できますか とくちゃん 06/10/6(金) 17:24 発言[未読]
【43256】Re:上書き同時二箇所保存できますか ハチ 06/10/7(土) 1:39 発言[未読]
【43236】Re:上書き同時二箇所保存できますか りん@通りすがり 06/10/6(金) 16:18 発言[未読]
【43240】Re:上書き同時二箇所保存できますか とく 06/10/6(金) 17:22 発言[未読]
【43242】Re:上書き同時二箇所保存できますか りん 06/10/6(金) 18:04 回答[未読]
【43247】Re:上書き同時二箇所保存できますか わさび 06/10/6(金) 20:13 発言[未読]
【43248】Re:上書き同時二箇所保存できますか とくちゃん 06/10/6(金) 21:08 発言[未読]
【43255】Re:上書き同時二箇所保存できますか [名前なし] 06/10/7(土) 0:53 回答[未読]
【43258】Re:上書き同時二箇所保存できますか とくちゃん 06/10/7(土) 4:43 お礼[未読]

【43194】上書き・名前をつけて保存・同時二箇所で...
質問  とくちゃん  - 06/10/5(木) 15:28 -

引用なし
パスワード
   こんなの出来ますか
bookを開き修正した場合上書き保存または名前を付けて保存
しますがこれを同時に2ツのフォルダに保存できますか。
フォルダ場所指定する。
よろしくお願いします。

【43195】Re:上書き・名前をつけて保存・同時二箇...
発言  ハチ  - 06/10/5(木) 15:47 -

引用なし
パスワード
   ▼とくちゃん さん:
>こんなの出来ますか
>bookを開き修正した場合上書き保存または名前を付けて保存
>しますがこれを同時に2ツのフォルダに保存できますか。
>フォルダ場所指定する。
>よろしくお願いします。

1つを .SaveCopyAs で保存すれば出来ます。
フォルダの指定方法は
こちらのサイトで検索すればサンプルはたくさん出てきますよ。

【43196】Re:上書き・名前をつけて保存・同時二箇...
発言  Jaka  - 06/10/5(木) 16:01 -

引用なし
パスワード
   ▼とくちゃん さん:
>こんなの出来ますか
>bookを開き修正した場合上書き保存または名前を付けて保存
>しますがこれを同時に2ツのフォルダに保存できますか。
2つのフォルダの意味が良く解らないんですけど....。
上書きは、場所指定するわけないですよね。
名前をつけて保存は、1つのフォルダですよね?

また、名前をつけて保存するブックと、上書き保存するブックと内容が違うとなると、ちょっと面倒くさいです。
名前をつけて保存すると、元ブックは閉じて名前をつけて保存した物に、勝手に摩り替わっちゃうから...。、

名前をつけて保存は、GetSaveAsで検索すれば見つかるんじゃないかと思います。

【43197】Re:上書き・名前をつけて保存・同時二箇...
発言  とくちゃん  - 06/10/5(木) 16:07 -

引用なし
パスワード
   ▼Jaka さん ハチさん:ありがとうございます。

>また、名前をつけて保存するブックと、上書き保存するブックと内容が違うとなると、ちょっと面倒くさいです。
>名前をつけて保存すると、元ブックは閉じて名前をつけて保存した物に、勝手に摩り替わっちゃうから...。、
>
>名前をつけて保存は、GetSaveAsで検索すれば見つかるんじゃないかと思います。

内容を絞り上書き保存のみ同時2つのフォルダにできますか。

>1つを .SaveCopyAs で保存すれば出来ます。
>フォルダの指定方法は
>こちらのサイトで検索すればサンプルはたくさん出てきますよ。
上記だけでは初心者としては???もう少し
アドバイスいただけませんか。

【43198】Re:上書き・名前をつけて保存・同時二箇...
発言  とくちゃん  - 06/10/5(木) 16:11 -

引用なし
パスワード
   ▼Jaka さん:
ありがとうございます。
ちょっと質問見落としました。
>2つのフォルダの意味が良く解らないんですけど....。
>上書きは、場所指定するわけないですよね。
2箇所に格納してあるのでフォルダを指定します。
上書きのみ2ヵ所同時保存との場合
どうすればいいか教えて下さい。

【43199】Re:上書き・名前をつけて保存・同時二箇...
発言  ハチ  - 06/10/5(木) 16:49 -

引用なし
パスワード
   ▼とくちゃん さん:

>>1つを .SaveCopyAs で保存すれば出来ます。
>上記だけでは初心者としては???もう少し
>アドバイスいただけませんか。

上書き保存ではないほうのBookのパスは固定ですか?
固定なら
>>フォルダの指定方法は
>>こちらのサイトで検索すればサンプルはたくさん出てきますよ。
これは無視してください。

こんな感じで上書き保存とC:直下に同じファイルができます。

Sub 二つ保存()
  ThisWorkbook.Save
  ThisWorkbook.SaveCopyAs "C:\" & ThisWorkbook.Name
End Sub

【43200】Re:上書き・名前をつけて保存・同時二箇...
発言  Jaka  - 06/10/5(木) 16:51 -

引用なし
パスワード
   意味合いが違っていたので修正。

>2箇所に格納してあるのでフォルダを指定します。
>上書きのみ2ヵ所同時保存との場合
これって、単に上書き保存後、別フォルダにファイルを複製するって事と同じ事なのでしょうか?
解釈が違っていたら、すみません。

【43201】Re:上書き・名前をつけて保存・同時二箇...
発言  とく  - 06/10/5(木) 17:04 -

引用なし
パスワード
   ▼Jaka さん:
>意味合いが違っていたので修正。
>
>>2箇所に格納してあるのでフォルダを指定します。
>>上書きのみ2ヵ所同時保存との場合
>これって、単に上書き保存後、別フォルダにファイルを複製するって事と同じ事なのでしょうか?
>解釈が違っていたら、すみません。
返事ありがとうございます。
はいその通りです

【43202】Re:上書き・名前をつけて保存・同時二箇...
発言  Jaka  - 06/10/5(木) 17:28 -

引用なし
パスワード
   もう帰るけど、ハチさんのコードでできますよ

任意につど名前をつけたいのなら、
ハチさんのコードで言うと、保存後(save)に

Dim fdfs As String

fdfs = Application.GetSaveAsFilename("初期設定名.xls", "エクセルファイル(*.xls),*.xls")
If fdfs = "False" Then
  msgbox "キャンセル"
  Exit Sub
Else
  ここにハチさんのsaveasのコードの、ThisWorkbook.Nameを「fdfs」に変えて書く。
End If

【43205】Re:上書き・名前をつけて保存・同時二箇...
お礼  とく  - 06/10/5(木) 20:20 -

引用なし
パスワード
   ハチさん・Jakaさんありがとうございました。
ほんとにいつも素早い回答に頭が下がります。
またお願いします。

【43207】Re:上書き・名前をつけて保存・同時二箇...
発言  とく  - 06/10/5(木) 20:45 -

引用なし
パスワード
   ▼Jaka さん:
>もう帰るけど、ハチさんのコードでできますよ
>
下記のように試したのですがエラー400が出て元ファイルの方は
上書きしているのですがコピー先は保存されません。
どこが悪いのでしょう?
Sub 同時保存()
Dim fdfs As String

fdfs = Application.GetSaveAsFilename("契約報告書VII-WSH.xls", "エクセルファイル(*.xls),*.xls")
If fdfs = "False" Then
  MsgBox "キャンセル"
  Exit Sub
Else
  'ここにハチさんのsaveasのコードの、ThisWorkbook.Nameを「fdfs」に変えて書く。
  ThisWorkbook.Save
  ThisWorkbook.SaveCopyAs "D:\OfficeII-EXCEL\office\" & fdfs
End If
End Sub

【43215】Re:上書き同時二箇所保存できますか
発言  とくちゃん  - 06/10/6(金) 0:57 -

引用なし
パスワード
   みなさんお願いします。
どこかまちがい解る方教えてくださーい。


>下記のように試したのですがエラー400が出て元ファイルの方は
>上書きしているのですがコピー先は保存されません。
>どこが悪いのでしょう?
>Sub 同時保存()
>Dim fdfs As String
>
>fdfs = Application.GetSaveAsFilename("契約報告書VII-WSH.xls", "エクセルファイル(*.xls),*.xls")
>If fdfs = "False" Then
>  MsgBox "キャンセル"
>  Exit Sub
>Else
>  'ここにハチさんのsaveasのコードの、ThisWorkbook.Nameを「fdfs」に変えて書く。
>  ThisWorkbook.Save
>  ThisWorkbook.SaveCopyAs "D:\OfficeII-EXCEL\office\" & fdfs
>End If
>End Sub

【43216】Re:上書き同時二箇所保存できますか
発言  ハチ  - 06/10/6(金) 8:26 -

引用なし
パスワード
   ▼とくちゃん さん:
>みなさんお願いします。
>どこかまちがい解る方教えてくださーい。
>
>
>>下記のように試したのですがエラー400が出て元ファイルの方は
>>上書きしているのですがコピー先は保存されません。
>>どこが悪いのでしょう?
>>Sub 同時保存()
>>Dim fdfs As String
>>
>>fdfs = Application.GetSaveAsFilename("契約報告書VII-WSH.xls", "エクセルファイル(*.xls),*.xls")
>>If fdfs = "False" Then
>>  MsgBox "キャンセル"
>>  Exit Sub
>>Else
>>  'ここにハチさんのsaveasのコードの、ThisWorkbook.Nameを「fdfs」に変えて書く。
>>  ThisWorkbook.Save

  ThisWorkbook.SaveCopyAs "D:\OfficeII-EXCEL\office\" & fdfs '←ここです。

>>End If
>>End Sub

エラー400がなにを意味するのか、調べてみましたか?
Msgbox fdfs とかで中身になにが入ってくるのか確認してみてください。

【43217】Re:上書き同時二箇所保存できますか
発言  とくちゃん  - 06/10/6(金) 9:31 -

引用なし
パスワード
   ▼ハチ さん:
返事ありがとうございます。
>
>エラー400がなにを意味するのか、調べてみましたか?
>Msgbox fdfs とかで中身になにが入ってくるのか確認してみてください。
エラー400はヘルプを見てもなにも表示しませんし他の調べ方があるのでしょうか
またMsgBox fdfsで中身確認しましたがMsgBoxにはなにも表示しません。
本日またテストしてみたのですが
実行時エラーアプリケーションの定義または
オブジェクトの定義エラーですと表示します。
よろしくお願いします。

【43218】Re:上書き同時二箇所保存できますか
発言  ハチ  - 06/10/6(金) 9:51 -

引用なし
パスワード
   ▼とくちゃん さん:
>エラー400はヘルプを見てもなにも表示しませんし他の調べ方があるのでしょうか

「インターネットで検索する」とたくさんでますよ。

>またMsgBox fdfsで中身確認しましたがMsgBoxにはなにも表示しません。

これは、MsgBoxを入れる位置が悪いんだと思います。
値を取得した直後、値を変更した直後、値を使う直前、などに入れて確認しないと
確認している意味がありません。

Sub 同時保存()
Dim fdfs As String

fdfs = Application.GetSaveAsFilename("契約報告書VII-WSH.xls", "エクセルファイル(*.xls),*.xls")
If fdfs = "False" Then
  MsgBox "キャンセル"
  Exit Sub
Else
  'ここにハチさんのsaveasのコードの、ThisWorkbook.Nameを「fdfs」に変えて書く。
  ThisWorkbook.Save
  'ここにMsgBox fdfs でどうでしょう?
  ThisWorkbook.SaveCopyAs "D:\OfficeII-EXCEL\office\" & fdfs 'この構文だと"D:Office・・"の後にfdfsをくっつけたパスになります。
End If
End Sub

【43220】Re:上書き同時二箇所保存できますか
発言  とくちゃん  - 06/10/6(金) 10:01 -

引用なし
パスワード
   ▼ハチ さん:
>▼とくちゃん さん:
>>エラー400はヘルプを見てもなにも表示しませんし他の調べ方があるのでしょうか
>
>「インターネットで検索する」とたくさんでますよ。
ちょっと調べてみます。
>
>>またMsgBox fdfsで中身確認しましたがMsgBoxにはなにも表示しません。
>
>これは、MsgBoxを入れる位置が悪いんだと思います。
>値を取得した直後、値を変更した直後、値を使う直前、などに入れて確認しないと
>確認している意味がありません。
>
>Sub 同時保存()
>Dim fdfs As String
>
>fdfs = Application.GetSaveAsFilename("契約報告書VII-WSH.xls", "エクセルファイル(*.xls),*.xls")
>If fdfs = "False" Then
>  MsgBox "キャンセル"
>  Exit Sub
>Else
>  'ここにハチさんのsaveasのコードの、ThisWorkbook.Nameを「fdfs」に変えて書く。
>  ThisWorkbook.Save
>  'ここにMsgBox fdfs でどうでしょう?
MsgBoxは出ますが、表示は何も出ませんでした。
>  ThisWorkbook.SaveCopyAs "D:\OfficeII-EXCEL\office\" & fdfs 'この構文だと"D:Office・・"の後にfdfsをくっつけたパスになります。
>End If
>End Sub

【43222】Re:上書き同時二箇所保存できますか
発言  とくちゃん  - 06/10/6(金) 10:56 -

引用なし
パスワード
   ▼ハチ さん:
>▼とくちゃん さん:
>>エラー400はヘルプを見てもなにも表示しませんし他の調べ方があるのでしょうか
>
>「インターネットで検索する」とたくさんでますよ。
>
>>またMsgBox fdfsで中身確認しましたがMsgBoxにはなにも表示しません。
>
>これは、MsgBoxを入れる位置が悪いんだと思います。
>値を取得した直後、値を変更した直後、値を使う直前、などに入れて確認しないと
>確認している意味がありません。
>
>Sub 同時保存()
>Dim fdfs As String
>
>fdfs = Application.GetSaveAsFilename("契約報告書VII-WSH.xls", "エクセルファイル(*.xls),*.xls")
>If fdfs = "False" Then
>  MsgBox "キャンセル"
>  Exit Sub
>Else
>  'ここにハチさんのsaveasのコードの、ThisWorkbook.Nameを「fdfs」に変えて書く。
>  ThisWorkbook.Save
>  'ここにMsgBox fdfs でどうでしょう?
>  ThisWorkbook.SaveCopyAs "D:\OfficeII-EXCEL\office\" & fdfs 'この構文だと"D:Office・・"の後にfdfsをくっつけたパスになります。
いろいろ試しました。
ThisWorkbook.SaveCopyAs "D:\OfficeII-EXCEL\office\契約報告書VII-WSH.xls"
直接入れるとOKでした

ThisWorkbook.SaveCopyAs "D:\OfficeII-EXCEL\office\ & fdfs"
フォルダに & fdfsというファイルができます。(当たり前か?)

>  ThisWorkbook.Save
>  'ここにMsgBox fdfs でどうでしょう?
MsgBox fdfsが表示され元のフォルダの名前がでて複製先ではないんです。
説明わかりますか。


>End If
>End Sub

【43223】Re:上書き同時二箇所保存できますか
回答  立ち寄り  - 06/10/6(金) 11:18 -

引用なし
パスワード
   >fdfs = Application.GetSaveAsFilename("契約報告書VII-WSH.xls", "エクセルファイル(*.xls),*.xls")

上記の構文fdfsに値ははいってきてませんよね?
ファイルの種類で"エクセルファイル"全角でうまくいっていますか?
ヘルプやらネットで記述に問題ないか検索してみて下さい。
確か違うと思います。

【43224】Re:上書き同時二箇所保存できますか
発言  とくちゃん  - 06/10/6(金) 11:45 -

引用なし
パスワード
   ▼立ち寄り さん:
返事ありがとうございます。
>>fdfs = Application.GetSaveAsFilename("契約報告書VII-WSH.xls", "エクセルファイル(*.xls),*.xls")
>
>上記の構文fdfsに値ははいってきてませんよね?
>ファイルの種類で"エクセルファイル"全角でうまくいっていますか?
半角に英文に修正してみましたが結果は同じでした
>ヘルプやらネットで記述に問題ないか検索してみて下さい。
>確か違うと思います。
ヘルプ参考例です
どこがいけないのかな?
fileSaveName = Application.GetSaveAsFilename( _
  fileFilter:="テキスト ファイル (*.txt), *.txt")
If fileSaveName <> False Then
  MsgBox "保存するファイル : " & fileSaveName
End If

【43225】Re:上書き同時二箇所保存できますか
回答  立ち寄り  - 06/10/6(金) 12:01 -

引用なし
パスワード
   ただ半角にしただけですか?
記述についてはネットにいっぱい説明でてますよ。
テキストの記述を真似してはだめです。
ダイアログボックスを開いた時のファイルの種類を記述するのですよ。
ただ質問者のエクセルバージョンがわからないので若干記述が
かわるかもしれませんので気をつけて下さい。

【43226】Re:上書き同時二箇所保存できますか
発言  ハチ  - 06/10/6(金) 12:09 -

引用なし
パスワード
   >ThisWorkbook.SaveCopyAs "D:\OfficeII-EXCEL\office\契約報告書VII-WSH.xls"
>直接入れるとOKでした

>ThisWorkbook.SaveCopyAs "D:\OfficeII-EXCEL\office\ & fdfs"
>フォルダに & fdfsというファイルができます。(当たり前か?)
>
>>  ThisWorkbook.Save
>>  'ここにMsgBox fdfs でどうでしょう?
>MsgBox fdfsが表示され元のフォルダの名前がでて複製先ではないんです。
>説明わかりますか。
>
>
>>End If
>>End Sub

良くわからなくなりました。
「上書き保存と、もう1つ別のファイルに保存したい」ですよね?
上書き保存のコードは
ThisWorkbook.Save
です。

もう一度確認しますが、
保存したいファイルのパスは固定ですか?

固定ならば、
自分が最初に提示したコードだけでOKです。
.SaveCopyAs = ・・・ここにフルパスでファイル名まで入れてください

固定ではなく選択したいならば、
Jakaさんのコードと組み合わせたコードになります。
ダイアログで選ぶファイル名は「もう1つのファイル」です。
fdfs にはフルパスが文字列で入りますので
ThisWorkbook.SaveCopyAs = fdfs

自分の環境(Win2000、Excel2000)では正常に保存できました。

【43227】Re:上書き同時二箇所保存できますか
発言  とくちゃん  - 06/10/6(金) 12:35 -

引用なし
パスワード
   ▼ハチ さん:何度もすみません
>
>良くわからなくなりました。
>「上書き保存と、もう1つ別のファイルに保存したい」ですよね?
はいそうです。
>上書き保存のコードは
>ThisWorkbook.Save
>です。
>
>もう一度確認しますが、
>保存したいファイルのパスは固定ですか?
>
>固定ならば、
>自分が最初に提示したコードだけでOKです。
>.SaveCopyAs = ・・・ここにフルパスでファイル名まで入れてください
"D:\OfficeII-EXCEL\office\契約報告書VII-WSH.xls"
フルパスでファイル名まで入れた場合
この方法だと両方上書きできます。
>
>固定ではなく選択したいならば、
>Jakaさんのコードと組み合わせたコードになります。
>ダイアログで選ぶファイル名は「もう1つのファイル」です。
>fdfs にはフルパスが文字列で入りますので
>ThisWorkbook.SaveCopyAs = fdfs
ThisWorkbook.SaveCopyAs "D:\OfficeII-EXCEL\office\ & fdfs"
             ↑ココが複製先保存フォルダです
複製の保存先アンドfdfsだと上書きが出来ずにエラー400がでます。
複製先指定はダメなんでしょうか。???
>
>自分の環境(Win2000、Excel2000)では正常に保存できました。

【43229】Re:上書き同時二箇所保存できますか
発言  ハチ  - 06/10/6(金) 13:46 -

引用なし
パスワード
   ▼とくちゃん さん:

>"D:\OfficeII-EXCEL\office\契約報告書VII-WSH.xls"
>フルパスでファイル名まで入れた場合
>この方法だと両方上書きできます。

フルパスとはなにか理解されているようですね。

>>ダイアログで選ぶファイル名は「もう1つのファイル」です。
>>fdfs にはフルパスが文字列で入りますので

>ThisWorkbook.SaveCopyAs "D:\OfficeII-EXCEL\office\ & fdfs"
>             ↑ココが複製先保存フォルダです
>複製の保存先アンドfdfsだと上書きが出来ずにエラー400がでます。

正常にファイルを選択できた場合のfdfsの値は、フルパスです。
D:\OfficeII-EXCEL\office\D:\OfficeII-EXCEL\office\・・・
に保存しようとしていることになります。
ドライブ指定の"D:"が2回あるパスはおかしいですよね?
もしくは、立ち寄りさんの書かれている原因かもしれませんので
そちらも確認してみてください。

ファイル名だけ指定したいなら
こんな感じでもできます。
Sub Test2()
  Dim fdfs As String
  
  fdfs = InputBox("ファイル名", , "契約報告書VII-WSH.xls")
  If fdfs = "" Then
    MsgBox "キャンセル"
    Exit Sub
  ElseIf Right(fdfs, 4) <> ".xls" Then
    MsgBox "拡張子は .xlsにしてください"
  Else
    ThisWorkbook.Save
    ThisWorkbook.SaveCopyAs "C:\" & fdfs
  End If
End Sub

【43235】Re:上書き同時二箇所保存できますか
発言  Jaka  - 06/10/6(金) 16:08 -

引用なし
パスワード
   ▼とくちゃん さん:
>ヘルプ参考例です
>どこがいけないのかな?
>fileSaveName = Application.GetSaveAsFilename( _
>  fileFilter:="テキスト ファイル (*.txt), *.txt")
>If fileSaveName <> False Then
>  MsgBox "保存するファイル : " & fileSaveName
>End If
fileSaveNameの変数の型によって、比較の仕方が変わります。

If fileSaveName <> False Then
           ↑
          Boolean型で結果を返したいなら
Dim fileSaveName As Variant  Variantにする

Dim fileSaveName As String  String型にするのなら
If fileSaveName <> "False" Then
           ↑
          文字列で比較

多分、この辺じゃないかと思います。

【43236】Re:上書き同時二箇所保存できますか
発言  りん@通りすがり  - 06/10/6(金) 16:18 -

引用なし
パスワード
   とくちゃん さん、こんにちわ。

>>エラー400がなにを意味するのか、調べてみましたか?
>>Msgbox fdfs とかで中身になにが入ってくるのか確認してみてください。
>エラー400はヘルプを見てもなにも表示しませんし他の調べ方があるのでしょうか

↓調べる方法
Sub test()
  MsgBox Error(400), vbInformation, "こんな内容"
End Sub

【43240】Re:上書き同時二箇所保存できますか
発言  とく  - 06/10/6(金) 17:22 -

引用なし
パスワード
   ▼りん@通りすがり さん:
アドバイスありがとうございます。
>>>エラー400がなにを意味するのか、調べてみましたか?
>>>Msgbox fdfs とかで中身になにが入ってくるのか確認してみてください。
>>エラー400はヘルプを見てもなにも表示しませんし他の調べ方があるのでしょうか
>
>↓調べる方法
>Sub test()
>  MsgBox Error(400), vbInformation, "こんな内容"
>End Sub

Sub 同時保存()
Dim fdfs As Variant

fdfs = Application.GetSaveAsFilename("契約報告書VII-WSH.xls", "ExcelFile(*.xls),*.xls")
If fdfs = "False" Then

  MsgBox "キャンセル"
  Exit Sub
Else
  ThisWorkbook.Save
  MsgBox "保存するファイル : " & fdfs
   ココでは複写先のフォルダでなくD:\OfficeII-EXCEL\office\がでます
  MsgBox Error(400), vbInformation, "こんな内容"
  ThisWorkbook.SaveCopyAs "D:\OfficeII-EXCEL\office\" & fdfs

同上で実行してみたのですが
MsgBoxにアプリーケーション定義またはオブジェクト定義エラーですと出て
終了間際にEditor上にエラー400が出ます。
なにかおかしいでしょうか?

【43241】Re:上書き同時二箇所保存できますか
発言  とくちゃん  - 06/10/6(金) 17:24 -

引用なし
パスワード
   ▼ハチ さん:

>>"D:\OfficeII-EXCEL\office\契約報告書VII-WSH.xls"
>>フルパスでファイル名まで入れた場合
>>この方法だと両方上書きできます。
>
>フルパスとはなにか理解されているようですね。
>
>>>ダイアログで選ぶファイル名は「もう1つのファイル」です。
>>>fdfs にはフルパスが文字列で入りますので
>
>>ThisWorkbook.SaveCopyAs "D:\OfficeII-EXCEL\office\ & fdfs"
>>             ↑ココが複製先保存フォルダです
>>複製の保存先アンドfdfsだと上書きが出来ずにエラー400がでます。
>
>正常にファイルを選択できた場合のfdfsの値は、フルパスです。
>D:\OfficeII-EXCEL\office\D:\OfficeII-EXCEL\office\・・・
>に保存しようとしていることになります。
>ドライブ指定の"D:"が2回あるパスはおかしいですよね?
>もしくは、立ち寄りさんの書かれている原因かもしれませんので
>そちらも確認してみてください。
>
>ファイル名だけ指定したいなら
>こんな感じでもできます。
>Sub Test2()
>  Dim fdfs As String
>  
>  fdfs = InputBox("ファイル名", , "契約報告書VII-WSH.xls")
>  If fdfs = "" Then
>    MsgBox "キャンセル"
>    Exit Sub
>  ElseIf Right(fdfs, 4) <> ".xls" Then
>    MsgBox "拡張子は .xlsにしてください"
>  Else
>    ThisWorkbook.Save
>    ThisWorkbook.SaveCopyAs "C:\" & fdfs
>  End If
>End Sub
test2の方法でうまくいきましたのでこれで実行するようにします。
ハチさんありがとうございました。

【43242】Re:上書き同時二箇所保存できますか
回答  りん E-MAIL  - 06/10/6(金) 18:04 -

引用なし
パスワード
   とく さん、こんばんわ。

>>>>エラー400がなにを意味するのか、調べてみましたか?
>>>>Msgbox fdfs とかで中身になにが入ってくるのか確認してみてください。
>>>エラー400はヘルプを見てもなにも表示しませんし他の調べ方があるのでしょうか
>>
>>↓調べる方法
>>Sub test()
>>  MsgBox Error(400), vbInformation, "こんな内容"
>>End Sub
調べ方があるのでしょうか?とかいてあるので、エラー番号400の内容をメッセージに出してるだけの処理で、本筋とは関係ありません。

>Sub 同時保存()
>Dim fdfs As Variant
>
>fdfs = Application.GetSaveAsFilename("契約報告書VII-WSH.xls", "ExcelFile(*.xls),*.xls")
>If fdfs = "False" Then
>
>  MsgBox "キャンセル"
>  Exit Sub
>Else
>  ThisWorkbook.Save
>  MsgBox "保存するファイル : " & fdfs
>  Mコでは複写先のフォルダでなくD:\OfficeII-EXCEL\office\がでます
>  ThisWorkbook.SaveCopyAs "D:\OfficeII-EXCEL\office\" & fdfs
こっちのパターンは他の方の回答待ちということなので、別の方法で。
ファイル名を固定にしているようなので、フォルダ選択ダイアログで指定したフォルダに複製を作ります。

Function FGet(wbp As Variant) As String
  'ダイアログを出してフォルダを選択し、その名前を返す関数
  Dim Shl As Object, Fol As Object
  Set Shl = CreateObject("Shell.Application")
  Set Fol = Shl.BrowseForFolder(0, "フォルダを選択して下さい", 0, wbp)
  '
  If Fol Is Nothing Then
   FGet = ""
  Else
   FGet = Fol.Items.Item.Path
  End If
  Set Fol = Nothing: Set Shl = Nothing
End Function
'↓フォルダを指定する関数を呼び出す例
Sub test()
  Dim pdat As String
  pdat = FGet("D:")
  If pdat = "" Then
    MsgBox pdat, vbExclamation, "保存もコピーもしません"
  Else
    With ThisWorkbook
      .Save
      .SaveCopyAs pdat & "\契約報告書VII-WSH.xls"
    End With
  End If
End Sub

こんな感じです。

【43247】Re:上書き同時二箇所保存できますか
発言  わさび  - 06/10/6(金) 20:13 -

引用なし
パスワード
   さーっと目を通しただけなので、見当違いでしたらごめんなさい。

とくちゃんさんは、ひょっとして、
「fdfs」には「契約報告書VII-WSH.xls」のみが入っていると勘違いされてますか?

ハチさんが、
>>正常にファイルを選択できた場合のfdfsの値は、フルパスです。
>>D:\OfficeII-EXCEL\office\D:\OfficeII-EXCEL\office\・・・
>>に保存しようとしていることになります。
>>ドライブ指定の"D:"が2回あるパスはおかしいですよね?
とおっしゃられているように、
「fdfs」には「D:\OfficeII-EXCEL\office\契約報告書VII-WSH.xls」が入っています。
なので、
>ThisWorkbook.SaveCopyAs "D:\OfficeII-EXCEL\office\" & fdfs
とすると、このパスは
「D:\OfficeII-EXCEL\office\D:\OfficeII-EXCEL\office\契約報告書VII-WSH.xls」
となってしまうのですが…そのあたりは納得されているのでしょうか?

余計なこと申しましたら、すみません。

【43248】Re:上書き同時二箇所保存できますか
発言  とくちゃん  - 06/10/6(金) 21:08 -

引用なし
パスワード
   ▼わさび さん:
アドバイスありがとうございます。
>さーっと目を通しただけなので、見当違いでしたらごめんなさい。
>
>とくちゃんさんは、ひょっとして、
>「fdfs」には「契約報告書VII-WSH.xls」のみが入っていると勘違いされてますか?
>
>ハチさんが、
>>>正常にファイルを選択できた場合のfdfsの値は、フルパスです。
>>>D:\OfficeII-EXCEL\office\D:\OfficeII-EXCEL\office\・・・
>>>に保存しようとしていることになります。
>>>ドライブ指定の"D:"が2回あるパスはおかしいですよね?
>とおっしゃられているように、
>「fdfs」には「D:\OfficeII-EXCEL\office\契約報告書VII-WSH.xls」が入っています。
>なので、
>>ThisWorkbook.SaveCopyAs "D:\OfficeII-EXCEL\office\" & fdfs
>とすると、このパスは
>「D:\OfficeII-EXCEL\office\D:\OfficeII-EXCEL\office\契約報告書VII-WSH.xls」

いえJakaさんから提示いただいた物なので理解してないのですが
ということは
ThisWorkbook.SaveCopyAs & fdfs で・・・よいと言うことですか。

>となってしまうのですが…そのあたりは納得されているのでしょうか?
>
>余計なこと申しましたら、すみません。
いえいえありがとうございます。

【43255】Re:上書き同時二箇所保存できますか
回答  [名前なし]  - 06/10/7(土) 0:53 -

引用なし
パスワード
   >ThisWorkbook.SaveCopyAs & fdfs で・・・よいと言うことですか。

上記の構文は理解していますか?
& fdfsの &は文字列の結合を表すので
残していてはだめですよ。
&は削除です。

【43256】Re:上書き同時二箇所保存できますか
発言  ハチ  - 06/10/7(土) 1:39 -

引用なし
パスワード
   ▼ハチ さん:

>ダイアログで選ぶファイル名は「もう1つのファイル」です。
>fdfs にはフルパスが文字列で入りますので
>ThisWorkbook.SaveCopyAs = fdfs

ThisWorkbook.SaveCopyAs fdfs
でした・・
凡ミスすいません。

【43258】Re:上書き同時二箇所保存できますか
お礼  とくちゃん  - 06/10/7(土) 4:43 -

引用なし
パスワード
   ▼ハチさん・Jakaさん・立ち寄りさん・りんさん・わさびさん・[名前なし] さん
ながながわたしの質問にお付き合いいただきありがとうございました。
大変勉強になりました。VBAは難しい・・・
またお願いします。

>>ThisWorkbook.SaveCopyAs & fdfs で・・・よいと言うことですか。
結局エラー400は出てしまいました。他の方のこーどを参考にしました。

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