
マクロ初心者です。
データファイルからシートを複写挿入するマクロです。
コピー先ファイル名を都度変更したいのですが、その場合マクロにコピー先ファイル名が入っているのでエラーになります。名前が変わっても実行できるようにするにはどうしたらよいのでしょう?
なお、複写元のデータファイルは複写後に閉じます。
Workbooks.Open Filename:="データファイル.xls"
Sheets("Sheet1").Copy Before:=Workbooks("コピー先ファイル名.xls").Sheets(1)
No.3ベストアンサー
- 回答日時:
こんばんは。
>昨日からマクロ始めたばかりで
いきなり実務に結び付けたいのでしたら、「逆引き辞典」とか、「VBAマクロ集」とか買って、それをそのまま写したほうがよいです。昨日・今日、始めたばかりで、他のプログラミングの経験者でなければ、掲示板で聞いたところで、勉強以前に混乱してしまうはずです。
掲示板で聞くのは、ある程度勉強してからのほうがよいですね。勉強の仕方にもよりますが、記録マクロでは上達しません。我慢して自分で解決しようとしたほうがよいですね。人に聞く癖をつけると、いつもでも上達してきません。
掲示板で、昨日・今日始めたばかりの人に、どう教えるのも、ちょっと厳しいと思います。
ただ、私が書かなくても、誰かが解答してしまいす。
GetOpenFilename というのは、敷居が高いのですが、ファイル名を取るには、良いのです。しかし、ファイル名を取得しているだけです。
Application.Dialogs(xlDialogOpen).Show はファイルを開けるには楽なのですが、ファイル名が取れないので、後者はファイルの動きが見えていないとできません。
どちらも、昨日・今日の人には無理かなって思います。
'--------------------------------------
Sub SampleTest()
Dim FileName As String
Dim NewBook As Workbook
FileName = Application.GetOpenFilename("Excel(*.xls),*.xls")
If FileName = "False" Then Exit Sub
Set NewBook = Workbooks.Open(FileName)
ThisWorkbook.Worksheets("Sheet1").Copy Before:=NewBook.Worksheets(1)
Set NewBook = Nothing
End Sub
ありがとうございました。
この方式で完成させる事ができます。
解答を頂きながら、ご報告が遅れて申し訳ありません。
これからは自分でも勉強するよう頑張ります。
感謝、感謝です。
No.2
- 回答日時:
>ホントに恥ずかしいのですが、昨日からマクロ始めたばかりで
別に恥ずかしいことではないですよ。
>コピー先ファイル名を都度変更したいのですが
「ファイルを開く」ダイアログボックスでファイルを選択して
その後の処理を行う方法もあります。
[GetOpenFilenameメソッド]を調べてみてはいかがでしょうか。
この回答への補足
ありがとうございます。
[GetOpenFilenameメソッド]も知らない用語でした。調べてみると大切なことのようです。
ファイルを開いてファイル名を取得するところまではできました。
そのあと、どうしたらコピー先のファイル名に反映させられるかかがわかりません。
もう少し頑張ってみます。
No.1
- 回答日時:
>名前が変わっても実行できるようにするにはどうしたらよいのでしょう?
コピー先のファイルは開いているものとして、その名前はVBAで取得できて
いるのですよね?
(どれだかわからないブックにコピーはしないはずなので)
>Sheets("Sheet1").Copy Before:=Workbooks("コピー先ファイル名.xls").Sheets(1)
の"コピー先ファイル名.xls"の部分を、文字列変数にして、その文字列変数の値を↑の(取得できている)コピー先ファイル名にしておけば良いでしょう。
(ブックを変数で特定できていればworkbokks(~)をそのブック(変数)で指定しても同様です)
この回答への補足
早速の回答ありがとうございます。
ホントに恥ずかしいのですが、昨日からマクロ始めたばかりで
「その名前はVBAで取得できているのですよね?」
の意味がわかりませんでした。
でも、前進した気分で嬉しいです。
もう少し勉強してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- Visual Basic(VBA) Excelのマクロ ブック間である範囲をコピー Workbooks(“a.xlsx“).Sheets 3 2022/05/12 17:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/01/27 13:15
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/07/01 12:54
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで保存しないで閉じると空の...
-
エクセル関数>参照ファイル名...
-
【Excel VBA】マクロでExcel自...
-
マクロの保存先、開いてるすべ...
-
EXCELブックが勝手に開いて困っ...
-
ファイル名変更後も、マクロを...
-
【Excel】マクロの保存先について
-
エクセル;相対パスを絶対パスへ...
-
エクセルで未保存に対するメッ...
-
フォルダ内のexcelファイルを順...
-
エクセルのvbaにて thisworkboo...
-
EXCELマクロで、開いてはいるが...
-
[フィルターオプションの設定]...
-
複数のExcelブックから特定シー...
-
EXcelのマクロで相対パスでファ...
-
EXCELのボタンによるマクロの登...
-
excelで直前に参照していたブッ...
-
1つのEXCELファイルをインター...
-
エクセルVBA 個人用マクロブッ...
-
【Excel】特定セルの内容をテキ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで保存しないで閉じると空の...
-
エクセル関数>参照ファイル名...
-
【Excel VBA】マクロでExcel自...
-
エクセルのvbaにて thisworkboo...
-
マクロの保存先、開いてるすべ...
-
エクセル;相対パスを絶対パスへ...
-
【Excel】マクロの保存先について
-
EXcelのマクロで相対パスでファ...
-
複数のExcelファイルの印刷設定...
-
excelで直前に参照していたブッ...
-
EXCELマクロで、開いてはいるが...
-
[フィルターオプションの設定]...
-
EXCELのボタンによるマクロの登...
-
EXCELブックが勝手に開いて困っ...
-
エクセルで使用期限付きのブッ...
-
エクセルを開いて文字を打つ際...
-
エクセルで未保存に対するメッ...
-
エクセルVBA 個人用マクロブッ...
-
【マクロ】マクロが保存されて...
-
エクセルで複数ファイルのセル...
おすすめ情報