|
こんにちは。初めて投稿いたします。
VBAをはじめて1週間のド素人です。
エクセルVBAにてファイルコピーのプログラムを作っています。
ワークシート1枚目のメインメニューボタンをクリックすると、メインメニューが出ます。
そのメニューの中に「部署登録」というコマンドボタンがあり、これをクリックすると部署登録画面(ユーザーフォーム)にいきます。
部署登録画面では、テキストBOXに入力した任意の名前で同じファイル複製する予定です。
例えば元のファイルを営業部.XLSとかいう名前で保存します。
保存先は、任意のフォルダ内に元のファイルを置き同じフォルダに「部署別フォルダ」というのを作りそこに相対パスをきって入れるつもりです。
したがって、名前を入れて、登録ボタンを押すと、部署別フォルダに、名前のついたコピーができるという寸法です。
部署登録画面の登録ボタンに以下のように記述しました。
---------------------------------------------------------------------------
Dim busyo As String
Dim mypath As String
'このファイルと同じフォルダにある部署別フォルダのパスを指定します。
mypath = Application.ThisWorkbook.Path & "\部署別フォルダ\"
busyo = 部署テキスト.Text
'入力テキストをファイル名称にしてこのファイルのコピーを格納ファイルフォルダに作成します。
Application.ThisWorkbook.SaveCopyAs Filename:=mypath & busyo & ".xls"
'テキストBOXをクリアする。
部署テキスト.Text = ""
'登録後メッセージの表示
MsgBox (busyo & "を登録しました。")
----------------------------------------------------------------------------
それで実際に部署登録画面の登録ボタンにこのコードを埋めて実行しますと、部署別フォルダに名前のついた複製ができました。
ところがファイルはできるのですが、そのあと、画面を終了させたり(unload me)再びメインメニューをクリックすると、エラーが発生してしまいます。
「パスが無効です」と出てしまいます。
上記コードを埋め込む前の終了ボタンやメインメニューボタンは正常動作するので、上記コードが悪さをしていると思うのですが・・・
ところで、この実行ファイルを、知り合いのPCで実行してもらったら正常動作しました。
私の環境はWin2000+オフィス2000
知り合いの環境はWinXP+エクセル2003です。
環境の違いでこんなことがおこるのでしょうか?素人の質問で恐縮ですがよろしくお願いいたします。
|
|