現在の構文は以下の通り作成し使用しています。
Dim FileName1
FileName1="\\C\台帳.xls"
Workbooks.Open FileName1 で目的のブックを開きます。
更新等の作業をした後ブックを保存する場合
Workbooks("台帳.xls").Close Savechanges:=true
で保存していますが、
(1)「FileName1」を使用して保存する方法を教えて頂きたいのですが可能でしょうか。
(2)同時に「FileName1」を使用してブックをアクティブにしたりセレクトする方法も教えて頂きたいのです。
ブックをセーブ・アクティブ・セレクトするたびにブックの名前をいちいち入力していますが、「FileName1」を使用してブック名の入力手間を減らしたいのです。
No.5ベストアンサー
- 回答日時:
済みません。
。わかりました。。まず、謝ります。#3 の Sample1 はデタラメです。というのは、
Workbooks("C:\test.xls").Activate
のようにカッコ内は、フルパスでも通るものと勘違いしていたのが原因で、
正しくは
Workbooks("test.xls").Activate
のように書かなくてはいけませんでした。また、良く確認したら、
Workbooks("test.xls").Select ×
↓
Workbooks("test.xls").Activate ○
Select はエラーになります。Activate しかできません。
うろ覚えの半端な知識で、逆に混乱させてしまったようです。#4 で補足いた
だいた内容が理解できました。上記のとおり、#3 の回答を一部修正させて
いただきます。申し訳ありませんでした。
#4 で補足頂いたコードで良いと思います。
ただ、オブジェクト変数を使う方が柔軟性があり、コードの見通し(可読性)は
よくなりますね。
> ブックをセーブ・アクティブ・セレクトするたびにブックの名前をいちいち
> 入力していますが...
すみません。未だに、ご質問の意図が掴めてないので、空回りな回答かもしれま
せんが、
' VBA が書かれたブック --> ThisWorkbook
MsgBox ThisWorkbook.Name
MsgBox ThisWorkbook.FullName
MsgBox ThisWorkbook.Path
' 現在アクティブなブック --> VBA が書かれているブックとは限らない
MsgBox ActiveWorkbook.Name
MsgBox ActiveWorkbook.FullName
MsgBox ActiveWorkbook.Path
この辺を調べてみて下さい。この辺で Filename1 に使えそうなものはありますか?
No.4
- 回答日時:
> FileName2 = "台帳.xls" を更に作成した上で...
すみません。補足していただいた内容の意味が良く理解できません。台帳.xls
を開いた状態で、同名ファイルを作るのは不可能では?
ファイル名を可変にして、ループ処理の中で使いたいってことでしょうか?
取り合えず、現在のコードを補足して下さい。
この回答への補足
Sub SampleTest()
Dim FileName1 As String
FileName1 = "C:\台帳.xls" 'ここのブック名を変更するだけで他のブックに転用します。
Dim Sheet_Name As String '変数を定義しました
Dim Book_Name As String '変数を定義しました
Workbooks.Open Filename:=FileName1
Sheet_Name = "サブメニュー"
Book_Name = ActiveWorkbook.Name
Workbooks(Book_Name).Sheets(Sheet_Name).Select
Range("A1").Select
End Sub
以上の通り変更して見ました。更に良い方法があればお教え下さい。
尚、SAVE・SELECT に付いても現在挑戦中です。
ご指導誠に有難うございます。
No.3
- 回答日時:
変数 FileName1 の型が String 型 か Object 型 で記述が異なります。
> FileName1 = "C:\台帳.xls"
この場合、文字列ですから Sample1 の方法になりますね。比較してみて下さい。
' String 型変数を使う場合
Sub Sample1()
Dim FileName1 As String
FileName1 = "C:\台帳.xls"
' 開く
Workbooks.Open FileName:=FileName1
' アクティブにする
Workbooks(FileName1).Activate
' Select する
Workbooks(FileName1).Select
' 保存して閉じる
Workbooks(FileName1).Close SaveChanges:=True
End Sub
' Object 型変数を使う場合
Sub Sample2()
' 変数名を変えています
Dim WB As Workbook
' 開く(開かれたブックを参照する)
Set WB = Workbooks.Open(FileName:="C:\台帳.xls")
' アクティブにする
WB.Activate
' Select する
WB.Select
' 保存して閉じる
WB.Close SaveChanges:=True
'参照を破棄
Set WB = Nothing
End Sub
この回答への補足
Dim FileName1 As String とし
FileName1 = "C:\台帳.xls"
Workbooks.Open FileName:=FileName1
でブックはで開きました。
以下の処理の時は
FileName2 = "台帳.xls" を更に作成した上で
' アクティブにする
Workbooks(FileName2).Activate
' Select する
Workbooks(FileName2).Select
' 保存して閉じる
Workbooks(FileName2).Close SaveChanges:=True
と定義しなければ作動しないのですが、何か良い方法はありますか。
No.2
- 回答日時:
名前を付けて保存して閉じる
Workbooks("台帳.xls").Close Savechanges:=true, Filename:=FileName1
名前を付けて保存(閉じない)
Workbooks("台帳.xls").SaveAs Filename:=FileName1, FileFormat:=xlNormal
アクティブ化
Workbooks("台帳.xls").Activate
ウィンドゥを最前面にするだけなのでファイル名は関係ありません。
No.1
- 回答日時:
Dim FileName1
Set FileName1 = Workbooks("台帳.xls")
FileName1.Activate
FileName1.Close
ファイルを開いたあとに、setコマンドで上記のような事なら可能です。
Dim FileName1
FileName1 = "\\C\台帳.xls"
Workbooks.Open FileName1
'Set FileName1 = ActiveWorkbook 'ファイルのオープンに失敗した場合の動作は不定
Set FileName1 = Workbooks("台帳.xls") '上記よりこちらを推薦
FileName1.Close Savechanges:=True
Set FileName1 = Nothing
という方法もあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォルダ内の全ブックのシート...
-
VBA、Excelのworkbook.open に...
-
ExcelVBAで今開いているユーザ...
-
フォルダ内の全ブックのシート...
-
マクロでログ抽出し、日付ごと...
-
コマンドボタンでマクロを起動...
-
すでに開いているブックのマク...
-
EXCEL VBAアドイン:シートの右...
-
[Excel VBA] フォルダ内の複数...
-
エクセルVBA Workbook変数に変...
-
VBA セル入力された日付データ...
-
エクセルでツールバーに「縮小...
-
コピーしたファイルのマクロを...
-
エクセルファイルを自身のファ...
-
Excelのラジオボタンにチェック...
-
htmlまたはJavascriptからファ...
-
ファイル名を今日の日付、時刻...
-
Excel VBAで、実行時にsheet上...
-
アクセスでファイルを開いたと...
-
Powerpointでランダムな数字の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォルダ内の全ブックのシート...
-
ExcelVBAで今開いているユーザ...
-
VB2010でExcelの行をコピーして...
-
エクセルVBA Workbook変数に変...
-
【ExcelVBA】指定の書式で、マ...
-
フォルダ内の全ブックのシート...
-
【Excel VBA】ブックを複数開い...
-
フォルダ内の全てのBookに同じ...
-
すでに開いているブックのマク...
-
EXCELマクロでxlsとxlsxを開く方法
-
VBA セル入力された日付データ...
-
VBA、Excelのworkbook.open に...
-
personal.xlsの削除方法
-
excelマクロ、任意セルの値で名...
-
コマンドボタンでマクロを起動...
-
エクセルVBAでブックを開くと処...
-
VBAでEXCELのワークシートを削...
-
EXCELマクロで上書きメッ...
-
[Excel VBA] フォルダ内の複数...
-
EXCEL VBA起動時の処理
おすすめ情報