よろしくお願いします。
フォームしか表示せず、Application.visible=false状態のエクセルシステムで、フォーム上のコマンドボタンによって、あるシートのコピーをCSVファイルとして保存するというコードを、以下のように書きました。
fn = thisworkbook.path & Month(Date) & "月" & Day(Date) & "日発行.csv" Sheets("CSV用").Visible = True Sheets("CSV用").Select Sheets("CSV用").Copy ActiveWorkbook.ActiveSheet.Range("A1").Select With ActiveSheet.UsedRange .Value = .Value End With Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=fn, FileFormat:=xlCSV ActiveWorkbook.Close Application.DisplayAlerts = True MsgBox fn & "を出力しました", 64, ""
これをwindows7-64bit上のexcel2010-32bit版で実行すると問題ないのですが、windows10上のexcel2016で実行すると、ただしくCSVファイルは保存されるのですが、その後、おそらくCSVファイルを開いていたであろうエクセルの空っぽのウィンドウが残ったままになり、ときには我がシステムのフォームよりも前面に出て来てしまうこともあります。
おそらく、.copy 命令のときに、自分のエクセルアプリウィンドウ内に新たなブックを生成させてそこにコピーするか、新たなエクセルアプリ自体を立ち上げてその中の新しいブックにコピーするかの違いなんじゃないかと思うのですが、どうでしょう?もしそうなら、これ、意図通りに制御することできるでしょうか?

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/04 13:03
2018/04/04 13:03