[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/01/13(Thu) 09:35
投稿者名:こう
URL :
タイトル:
VB上でEXCELファイルの上書き保存をしたいのですが・・
お世話になります。

VB上でEXCELファイルの上書き保存をしたいのですが、
EXCELのマクロで試したところ、ActiveWorkbookで保存するのですが、
上書き保存ではなく、マイドキュメントに保存します。
違うフォルダのEXCELファイルを開いてそのままそこに上書き保存したいのです。
是非ご教授下さい。
宜しくお願い致します。
m(_  _)m

投稿時間:2005/01/13(Thu) 10:10
投稿者名:INA
Eメール:
URL :
タイトル:
Re: VB上でEXCELファイルの上書き保存をしたいのですが・・
文章の意味が良く分かりませんが、
Excelでマクロの記録をして、コードを確認してみるのが簡単ですよ。


>EXCELファイルの上書き保存
Saveメソッドでできます。

>ActiveWorkbookで保存するのですが、
対象のブックの指定方法は? 


>上書き保存ではなく、マイドキュメントに保存します
最初の説明と矛盾していますが・・
名前を付けて保存なら、SaveAsメソッドでできます。

>違うフォルダのEXCELファイルを開いて
Openメソッドで開けます。

投稿時間:2005/01/13(Thu) 10:51
投稿者名:こう
URL :
タイトル:
Re^2: VB上でEXCELファイルの上書き保存をしたいのですが・・
説明不足で申し訳御座いませんでした。

Dim xlApp    As Excel.Application
    Dim xlBook   As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(strPath)         '"strPath"パスまで指定オープンするファイル名
    Set xlSheet = xlBook.Worksheets("Sheet1")

    xlSheet.Cells(1, 1).Value = "12"        'セルに値を入力
    xlSheet.Cells(2, 1).Value = "34"
    xlSheet.Cells(3, 1).Formula = "=A1+A2"  '計算式を入力
    'ファイルを保存
    xlApp.ActiveWorkbook.Save

上記で、ファイルを開いてセルに値を入力して、
そのまま上書きしたいのですが、
上記のソースでは、マイドキュメントにファイル名に1が付いて保存します
開いたファイルは何の変更も無くそのままです
新たにマイドキュメントに作成されます。

投稿時間:2005/01/13(Thu) 11:10
投稿者名:INA
Eメール:
URL :
タイトル:
Re^3: VB上でEXCELファイルの上書き保存をしたいのですが・・
>xlApp.ActiveWorkbook.Save
 ↓
xlBook.Save

でしょうか?

投稿時間:2005/01/13(Thu) 11:26
投稿者名:こう
URL :
タイトル:
Re^4: VB上でEXCELファイルの上書き保存をしたいのですが・・
ご回答有難う御座いました。

xlApp.ActiveWorkbook.Save

xlBook.Saveに変更するのでしょうか?
それでもマイドキュメントに保存します。

投稿時間:2005/01/13(Thu) 13:07
投稿者名:INA
Eメール:
URL :
タイトル:
Re^5: VB上でEXCELファイルの上書き保存をしたいのですが・・
>それでもマイドキュメントに保存します。


> Set xlBook = xlApp.Workbooks.Open(strPath)  
で開いたブックが、マイドキュメントにあるからではないのですか?

投稿時間:2005/01/13(Thu) 12:25
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: VB上でEXCELファイルの上書き保存をしたいのですが・・
    xlBook.Save
又は、
    xlBook.SaveAs strPath

を試して見て下さい。
Excel 関係の質問はここの Excel & Word 関係をご覧になってから質問ねがいます。
今回の事も記載されていますよ。

>xlApp.ActiveWorkbook.Save
>を
>xlBook.Saveに変更するのでしょうか?
>それでもマイドキュメントに保存します。

上書き保存とは、同じパスの同じファイル名に保存する事です、従って マイドキュメントに
あったファイルはマイドキュメントに保存されます。
違うフォルダーに保存したいなら、xlBook.SaveAs strPath のようにファイル名とパスを
指定して下さい。

Set xlBook = xlApp.Workbooks.Open(strPath) この時の strPath の中身はどのように
なっていますか?

投稿時間:2005/01/13(Thu) 13:33
投稿者名:こう
URL :
タイトル:
Re^4: VB上でEXCELファイルの上書き保存をしたいのですが・・
>     xlBook.Save
> 又は、
>     xlBook.SaveAs strPath
>
> を試して見て下さい。
> Excel 関係の質問はここの Excel & Word 関係をご覧になってから質問ねがいます。
> 今回の事も記載されていますよ。
>
> >xlApp.ActiveWorkbook.Save
> >を
> >xlBook.Saveに変更するのでしょうか?
> >それでもマイドキュメントに保存します。
>
> 上書き保存とは、同じパスの同じファイル名に保存する事です、従って マイドキュメントに
> あったファイルはマイドキュメントに保存されます。
> 違うフォルダーに保存したいなら、xlBook.SaveAs strPath のようにファイル名とパスを
> 指定して下さい。
>
> Set xlBook = xlApp.Workbooks.Open(strPath) この時の strPath の中身はどのように
> なっていますか?

ご回答有難う御座いました。
strPath の中身は
"C:\DeliveryOCR\OUT\Format.xls"
です

この時マイドキュメントに"Format.xls"ファイルは無い状態で
xlBook.Save
でセーブすると

マイドキュメントに"Format1.xls"で保存されます。

そして
xlBook.SaveAs strPath
でセーブすると
同じファイルが存在します。
上書きしますか?
とメッセージが出ます。
恐らく同じ名前のファイルを
上書き保存ではなく、名前を付けて保存していると思います。

投稿時間:2005/01/13(Thu) 13:44
投稿者名:INA
Eメール:
URL :
タイトル:
Re^5: VB上でEXCELファイルの上書き保存をしたいのですが・・
>xlBook.SaveAs strPath
>でセーブすると
>同じファイルが存在します。
>上書きしますか?
>とメッセージが出ます。
>恐らく同じ名前のファイルを
>上書き保存ではなく、名前を付けて保存していると思います。

上書き保存の確認メッセージなのだから、上書き保存でしょ?

投稿時間:2005/01/13(Thu) 14:08
投稿者名:こう
URL :
タイトル:
Re^6: VB上でEXCELファイルの上書き保存をしたいのですが・・
ご回答有難う御座いました。

普通EXCELのファイルで上書き保存ボタンを押下した時に
確認メッセージは出ないと思います。

同じ名前のファイルを同じディレクトリに保存しようと、しているので
メッセージが出るのではないのですか?

メッセージが出ると処理が止まってしまいますので、
メッセージが出るのはまずいです。

では自動的にメッセージの"はい"ボタンを押下して、処理を継続する方法は
有りますでしょうか?

投稿時間:2005/01/13(Thu) 14:24
投稿者名:INA
Eメール:
URL :
タイトル:
Re^7: VB上でEXCELファイルの上書き保存をしたいのですが・・
あらかじめ Kill でファイルを削除しておくくらいしか思いつかないです。すみません・・ 

投稿時間:2005/01/13(Thu) 14:47
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^7: VB上でEXCELファイルの上書き保存をしたいのですが・・
> では自動的にメッセージの"はい"ボタンを押下して、処理を継続する方法は
> 有りますでしょうか?

xlApp.DisplayAlerts = False

前の回答にも書きましたが
Excel 関係の質問はここの Excel & Word 関係をご覧になってから質問ねがいます。
今回の事も記載されていますよ!! (^_^;)

投稿時間:2005/01/13(Thu) 14:53
投稿者名:こう
URL :
タイトル:
Re^8: VB上でEXCELファイルの上書き保存をしたいのですが・・
ご回答有難う御座いました。

申し訳御座いませんでした。
以後気を付けますm(_  _)m

ご相談に乗って頂き、有難う御座いました。