C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: 上書き保存と既存ファイルの置き換えについて


(過去ログ 109 を表示中)

[トピック内 12 記事 (1 - 12 表示)]  << 0 >>

■64771 / inTopicNo.1)  上書き保存と既存ファイルの置き換えについて
  
□投稿者/ 卒論ギリギリ4回生 (1回)-(2013/01/08(Tue) 17:15:58)

分類:[.NET 全般] 

お世話になります。
卒業製作でVB2010を使ってプログラムをしています。
文系学部のIT系のゼミでの卒業製作ですが勉強不足でVB初心者です。鞭撻お願い致します。

VBでexcelを開きcellの値を変更したり、VBで値を表示するというような事をしています。

cellの値を変更する度にsaveメソッドで上書き保存をしているのですが、「ファイルが既にあります。置き換えますか?」というメッセージが出ます。
saveAsメソッドで名前をつけて保存しているなら、このメッセージに納得出来るのですが、上書き保存なのだから、既に同じ名前があって当然ではないのでしょうか?
また、displayAlertsメソッドをsave メソッドの前の行に組み込んだのですが、メッセージがなくなったのはいいのですが、上書き保存されなくなりました。

何か解決方法はないでしょうか?
引用返信 編集キー/
■64775 / inTopicNo.2)  Re[1]: 上書き保存と既存ファイルの置き換えについて
□投稿者/ Azulean (78回)-(2013/01/08(Tue) 22:44:12)
念のために確認ですが、その保存しようとしているワークブックは一度以上保存されている(=ファイル名が確定している)のでしょうか?

ファイル名が確定していない状態で Save を実行するとカレントディレクトリに新規に保存される、保存される際に同じ名前があればご質問されているメッセージが表示されるという Web ページを見かけたためです。
引用返信 編集キー/
■64776 / inTopicNo.3)  Re[2]: 上書き保存と既存ファイルの置き換えについて
□投稿者/ 卒論ギリギリ4回生 (2回)-(2013/01/08(Tue) 23:40:20)
No64775 (Azulean さん) に返信
> 念のために確認ですが、その保存しようとしているワークブックは一度以上保存されている(=ファイル名が確定している)のでしょうか?
>
> ファイル名が確定していない状態で Save を実行するとカレントディレクトリに新規に保存される、保存される際に同じ名前があればご質問されているメッセージが表示されるという Web ページを見かけたためです。

返信ありがとうございます。
上書き保存しようとしているファイルはファイル名が確定しています。
最初の説明が少な過ぎたでしょうか?
やっているのを簡潔に書くと、
@VBのexeファイルを開く
Aボタン1をクリック→ドライブから「○○○.xle」のファイルを開き、その中のcellの値をlabelに表示→exeファイルを閉じる
Btextboxに入力
Cボタン2をクリック→ドライブから「○○○.xle」のファイルを開き、その中のcellにtextboxのデータを挿入→saveメソッドで上書き保存→ファイルを閉じる
というような事をしています。

引用返信 編集キー/
■64777 / inTopicNo.4)  Re[3]: 上書き保存と既存ファイルの置き換えについて
□投稿者/ やまだ (1回)-(2013/01/09(Wed) 01:53:01)
やまだ さんの Web サイト
> また、displayAlertsメソッドをsave メソッドの前の行に組み込んだのですが、メッセージがなくなったのはいいのですが、上書き保存されなくなりました。
displayAlerts でダイアログの表示を止めたらその選択結果のデフォルト値として「置き換えない」という値が返るようになっただけだと思います。
こちらは本質的な解にはならないかと。

save 実行前に、Workbook の ConflictResolution プロパティを XlSaveConflictResolution.xlLocalSessionChanges に設定しておけば
無条件上書きされるようにならないでしょうか?
#今は、XlSaveConflictResolution.xlUserResolution になっているのではないかと予想。

解決につながらなかったらごめんなさい。
引用返信 編集キー/
■64778 / inTopicNo.5)  Re[4]: 上書き保存と既存ファイルの置き換えについて
□投稿者/ 卒論ギリギリ4回生 (3回)-(2013/01/09(Wed) 03:52:13)
No64777 (やまだ さん) に返信
>>また、displayAlertsメソッドをsave メソッドの前の行に組み込んだのですが、メッセージがなくなったのはいいのですが、上書き保存されなくなりました。
> displayAlerts でダイアログの表示を止めたらその選択結果のデフォルト値として「置き換えない」という値が返るようになっただけだと思います。
> こちらは本質的な解にはならないかと。
>
> save 実行前に、Workbook の ConflictResolution プロパティを XlSaveConflictResolution.xlLocalSessionChanges に設定しておけば
> 無条件上書きされるようにならないでしょうか?
> #今は、XlSaveConflictResolution.xlUserResolution になっているのではないかと予想。
>
> 解決につながらなかったらごめんなさい。

返信ありがとうございます。
bookのConflictResolution プロパティにXlSaveConflictResolution.xlLocalSessionChangesを組み込んでみました。
組み込む前に検索してみると、bookが重複した際にローカルユーザーの変更を受け入れるとあったのでいけるかと思いましたが、効果はなく、相変わらず置き換えのメッセージが出ました。
ご提案ありがとうございました。
他に何かいい案はありませんでしょうか?
引用返信 編集キー/
■64779 / inTopicNo.6)  Re[1]: 上書き保存と既存ファイルの置き換えについて
□投稿者/ http:// (1回)-(2013/01/09(Wed) 04:14:40)
馬鹿な発言かもしれませんが、VBのexeファイルを実行する度に勝手にドキュメントライブラリに作成される、ドライブから開いているxleファイルと全く同じ名前のxleファイルを作成させない方法などあるのでしょうか?

引用返信 編集キー/
■64780 / inTopicNo.7)  Re[2]: 上書き保存と既存ファイルの置き換えについて
□投稿者/ やまだ (2回)-(2013/01/09(Wed) 08:00:02)
やまだ さんの Web サイト
No64779 (http:// さん) に返信

えと、これは元の質問者と同じ方だと思って良いのでしょうか。

> 馬鹿な発言かもしれませんが、VBのexeファイルを実行する度に勝手にドキュメントライブラリに作成される、ドライブから開いているxleファイルと全く同じ名前のxleファイルを作成させない方法などあるのでしょうか?

だとすると、本人は上書きのつもりでも、同名のファイルを新規に作成しているという(つまり一度も保存されていない)状態ではないでしょうか。
ファイルのパス指定が正しいかどうか確認してみてください。
その場合、Azlean さん指摘の現象ということになりそうですね。

引用返信 編集キー/
■64787 / inTopicNo.8)  Re[3]: 上書き保存と既存ファイルの置き換えについて
□投稿者/ ちゅんたま (1回)-(2013/01/09(Wed) 14:25:14)
xleファイルって何ですか?
Excelファイルの拡張子ならxls・xlsxだと思いますが。
拡張子がおかしいから、おかしな動きになっているのではないでしょうか?
引用返信 編集キー/
■64790 / inTopicNo.9)  Re[1]: 上書き保存と既存ファイルの置き換えについて
□投稿者/ shu (137回)-(2013/01/09(Wed) 16:30:42)
No64771 (卒論ギリギリ4回生 さん) に返信

とりあえず記述されたコードの提示が大事かと思います。
引用返信 編集キー/
■64796 / inTopicNo.10)  Re[3]: 上書き保存と既存ファイルの置き換えについて
□投稿者/ 卒論ギリギリ4回生 (1回)-(2013/01/10(Thu) 07:37:42)
No64780 (やまだ さん) に返信
> ■No64779 (http:// さん) に返信
>
> えと、これは元の質問者と同じ方だと思って良いのでしょうか。
すみません。私です。

>
> だとすると、本人は上書きのつもりでも、同名のファイルを新規に作成しているという(つまり一度も保存されていない)状態ではないでしょうか。
> ファイルのパス指定が正しいかどうか確認してみてください。
全て確認しましたがファイルのパス指定は間違いありませんでした。
試しにあえて、同名のファイルを保存してみると、少し違ったメッセージボックスが表示されたので新しい同名のファイルが保存されたということはないと思うのです。

引用返信 編集キー/
■64797 / inTopicNo.11)  Re[4]: 上書き保存と既存ファイルの置き換えについて
□投稿者/ 卒論ギリギリ4回生 (4回)-(2013/01/10(Thu) 07:41:15)
No64787 (ちゅんたま さん) に返信
> xleファイルって何ですか?
> Excelファイルの拡張子ならxls・xlsxだと思いますが。
> 拡張子がおかしいから、おかしな動きになっているのではないでしょうか?

すみません。私の表記ミスです。拡張子はちゃんとxlsxでした。
引用返信 編集キー/
■64803 / inTopicNo.12)  Re[2]: 上書き保存と既存ファイルの置き換えについて
□投稿者/ ちゅんたま (2回)-(2013/01/10(Thu) 17:05:28)
では、例えば、Saveメソッドの代わりにSaveAsメソッドを使い、自分自身のファイル名で保存してはどうでしょう?
(当然、保存しようとするファイルは存在するので、ApplicationオブジェクトのDisplayAlerts=Falseの状態にしておきます。)

でも、一度、現象が再現するコードをここに掲載した方がいいのではないでしょうか?
あと、Excelのバージョンも分かりませんし、参照設定を使っているのかレイトバインドを使っているのか分からないので、
そこらへんの情報も載せた方がいいのではないでしょうか?
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -