プロが教えるわが家の防犯対策術!

先日こちらで任意のファイルを開く方法を教えて頂きました。
それに追加して

ChDir "C:\Osaka_LocalShare\Private\山本\勤怠チェック"

を入れて指定フォルダを開くようにしたいのですが、以下プログラムに入れてもその通りに動きません。

以下、プログラムで何か問題があればご教授して頂けますでしょうか。

Sub test_2()
Dim FileName2 As String
Dim FileName3 As String
Dim fl2 As Workbook
Dim fl3 As Workbook

ChDir "C:\Osaka_LocalShare\Private\山本\勤怠チェック"
FileName2 = Application.GetOpenFilename
Set fl2 = Workbooks.Open(filename:=FileName2)

fl2.SaveAs FileFormat:=xlNormal

ChDir "C:\Osaka_LocalShare\Private\山本\勤怠チェック"
FileName3 = Application.GetOpenFilename
Set fl3 = Workbooks.Open(filename:=FileName3)

fl3.Sheets("社員名簿").Copy _
Before:=fl2.Sheets(1)

fl3.Close False '上書き保存するなら True で

'Set fl2 = Nothing '解放したいけどBookは開いたまま?
Set fl3 = Nothing

End Sub

A 回答 (2件)

こんにちは



どこが「教えて頂いた内容」なのかはっきりしませんが、推測するところ
 >FileName2 = Application.GetOpenFilename
 >Set fl2 = Workbooks.Open(filename:=FileName2)
の部分がこれに当たり、質問者様がそれに
 >ChDir "C:\Osaka_LocalShare\Private\山本\勤怠チェック"
の1行を付け加えたということでしょうか?
とりあえず、その前提での回答です。

まず、ChDirはファイルを開く処理ではありません。
https://msdn.microsoft.com/ja-jp/vba/language-re …

また、実行してみればわかるように、その後の2行(=教えてもらったもの)が
 ・ファイル指定のダイアログでファイルを選択し
 ・選択されたファイルを開く
処理となっていますので、基本的な処理内容が変わることはありません。

固定ファイルを開きたいのであれば、ファイル選択のダイアログは必要ありませんし、ファイルのOpenメソッドで直接に固定のファイルパスを指定しておけばできると思います。
    • good
    • 0
この回答へのお礼

ご返信ありがとうございます。
色々調べてみまして何とかできそうだったのですが、フォルダにロックがかけられていてアクセスできないとの表示が出てしまいました。たぶんこれ以上は無理だと思います。

お礼日時:2018/01/30 08:36

http://officetanaka.net/excel/vba/file/file02.htm
http://vbaexcel.seesaa.net/article/148313379.html

これを見る限りとこちらで簡単なテストをしてみたら、目的のフォルダが現れましたけどね。

>ChDir "C:\Osaka_LocalShare\Private\山本\勤怠チェック"

ChDir "C:\Osaka_LocalShare\Private\山本\勤怠チェック\"

最後に"\"が抜けてるからかな?

あと変更は1度で良いでしょうけど、後者のサイトにあるように元に戻すのは必要かもですよ。
    • good
    • 0
この回答へのお礼

ご返信いつもありがとうございます。
色々調べて試したところ結局できそうでしたが、フォルダにロックがかけられているみたいでアクセスできませんでした。

お礼日時:2018/01/30 08:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!