[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『今開いているファイル名を変更してもコードを変えずに動かすには』(長州力)
初歩的な質問ですが宜しくお願いします。。
下記のコードを作成しました。
Sub CcopyPpaste()
' データ転記
'
Workbooks.Open FileName:=ThisWorkbook.Path & "\DATA_01.xlsm" Sheets("Sheet1").Select Range("A1:Z3").Select Selection.Copy Windows("転記Ver1.xlsm").Activate Range("D8").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ' ' Selection.Copy
' 参照元のファイルを閉じる
'
Application.DisplayAlerts = False If Workbooks.Count > 1 Then 'ファイルが複数開かれているか確認 For Each myBK In Workbooks
' 現在選択しているファイル以外の名前のファイルを閉じる
If myBK.Name <> ActiveWorkbook.Name Then myBK.Close End If Next End If Application.DisplayAlerts = True ' ActiveWorkbook.Save ' 本マクロファイルを上書き保存する End Sub
簡単に説明しますと、「DATA_01.xlsm」のSheet1のA1セル〜Z3セルの値を
そのまま本ファイル「転記Ver1.xlsm」のD8セル以降に貼り付けます。
その後、参照元の「DATA_01.xlsm」を閉じ、本マクロファイル
「転記Ver1.xlsm」を上書き保存して終了します。
ここで質問ですが、本マクロファイル「転記Ver1.xlsm」の名前を変更しても
これらのコードを変更せずに動かすには、どのようにしたらよいでしょうか。
現状ですと、マクロファイル名を「転記Ver2.xlsm」と変更した場合、
Windows("転記Ver1.xlsm").Activate
でファイル名を指定していますので、ここを書き換えなければなりません。
ActiveWorkbook.Save
のように、今開いているファイルの名前を変更してもコードを変えずに
動かすには、どのようにしたら宜しいでしょうか。
初歩的な質問で申し訳ありませんが、宜しくお願い致します。
< 使用 Excel:Excel2016、使用 OS:Windows7 >
しかし、アクティブなものに頼ったぜい肉だらけのコードは美しくないので、以下のようにしてはどうでしょうか?(ニックネームを見ると、無駄な肉が付いている事を良しとする方ではないと思われますので)
Sub test() Dim ws As Worksheet
Set ws = ActiveSheet
With Workbooks.Open(ThisWorkbook.Path & "\DATA_01.xlsm", False, True) .Sheets("Sheet1").Range("A1:Z3").Copy ws.Range("D8").PasteSpecial Paste:=xlPasteValues .Close False End With ActiveWorkbook.Save End Sub (???) 2019/08/02(金) 11:26
随分すっきりとまとまるのですね。
頭の中がぜい肉だらけなので、いい勉強になりました。
また質問させて頂くことがあるかもしれませんが
その時は宜しくお願い致します。
(長州力) 2019/08/02(金) 11:50
(長州力) 2019/08/02(金) 15:23
Application.DisplayAlerts = False Application.EnableEvents = False
Application.EnableEvents = True Application.DisplayAlerts = True (???) 2019/08/02(金) 17:41
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.