No.8ベストアンサー
- 回答日時:
マクロを起動するとファイル選択ダイアログボックスが表示されます。
コピー先のファイルを選択してください。
選択するとそのファイルの祝日シートにコピーが行われます。
Public Sub 祝日コピー()
Dim Target As String
Dim wb As Workbook
Dim ws As Worksheet
Dim ms As Worksheet
Dim maxrow As Long
Set ms = Worksheets("祝日")
Target = Application.GetOpenFilename("Excel ブック,*.xls?")
If Target = "False" Then Exit Sub
Set wb = Workbooks.Open(Target)
Set ws = wb.Worksheets("祝日")
ws.Range("A1:B" & Rows.Count).ClearContents
maxrow = ms.Cells(Rows.Count, 1).End(xlUp).Row
ws.Cells(1, 1).Resize(maxrow, 2).Value = ms.Cells(1, 1).Resize(maxrow, 2).Value
wb.Save
wb.Close
MsgBox ("完了")
End Sub
できました~ \(^o^)/
早速来年の予定表が作成できます。
本当に長い時間ありがとうございました。
これからもよろしくお願いいたします。
No.7
- 回答日時:
No6です。
補足拝見しました。以下不明点です。
1.マクロを格納するブックはどれですか。
①祝日元のブック
②班ごとのブック
③それ以外
2.祝日元のブックのコピー元のシート名は"Sheet1"であってますか。
違う場合は、シート名を提示してください。
3.班ごとのブックのコピー先のシート名は"Sheet2"であってますか。
違う場合は、シート名を提示してください。
4.マクロを実行したとき、
1回の実行で、全ての班ごとのブックへコピーすることを想定していますか。
それとも
1回の実行で、1つの班ごとのブックへコピーすることを想定していますか。
No.6
- 回答日時:
No5です。
以下のような前提で良いでしょうか。
1.マクロは、各予定表ファイルに登録する。
2.ボタンとマクロの関連付けは、質問者(あなた)が行う。
3.祝日一覧ファイルの拡張子も含めたファイル名は「祝日一覧.xlsx」とする。
4.マクロの機能は以下とする。
フォルダB内の祝日一覧.xlsxのSheet1のA列とB列を
予定表ファイルのSheet2のA列、B列へコピーする。
上記で良ければ提供可能です。前提に齟齬があれば、補足してください。
フォルダ(A)は「祝日元」のブックだけが入っています。
フォルダ(B)の中は各部署ごとのフォルダが入っています。その各部署のフォルダに班ごとのブックがあります。
フォルダ(A)の「祝日元」のA列、B列をコピーして
フォルダ(B)の中の各部署フォルダの中の班ごとブックのA列、B列に貼り付けるというものです。
フォルダから別のフォルダへのマクロができません。
この説明でわかりますでしょうか?
よろしくお願いいたします。
No.5
- 回答日時:
1.部署数はいくつほどありますか。
2.1年に1回限り、部署数の数だけ、祝日一覧から、予定表の祝日へコピペすれば済む話かと思いますが、そうではないのでしょうか。
マクロで行いたい理由は何でしょうか。
ありがとうございます。
部署は4つありますがその中にいくつもの班があります。
①人数分の印刷
②今月の予定を同ブックのシートにコピー
③今月の予定を削除
①②③をボタンでやっています。
これが初めてのボタンです。
予定表などは個々によって内容が違いますが、祝日はどの部署でも共通しているので祝日というブックから各部署のブックに自動で上書きしたいです。
ボタンしか経験がないのでこだわりました。
よろしくお願いいたします。
No.4
- 回答日時:
No3です。
補足です。
1.wb.Saveで上書きするので、この行もコメント化してから試してください。
2.今回提示したのは、使い勝手を実感するサンプルですので、
機能不足です。このまま実務に適用しないでください。
No.3
- 回答日時:
祝日ファイルの祝日シートにボタンを作り以下のマクロを登録します。
ボタンを押せばファイル選択画面が表示されるので予定表を選ぶ。
内容OKなら保存して閉じる
ボタン押す
これを繰り返す
マクロの記録をベースにしているのでシートやセルは適当です。
Sub Macro1()
'
' Macro1 Macro
'
Dim OpenFileName As String
Dim wb As Workbook
Application.ScreenUpdating = False
OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?") → エクスプローラーのファイル選択画面表示
Set wb = Workbooks.Open(OpenFileName)
'
ThisWorkbook.Activate '予定表
Range("B2:B9").Select
Selection.Copy
wb.Activate '部署ファイル
Worksheets("sheet2").Select
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select
wb.Save
Application.CutCopyMode = False
MsgBox " Copy End = " & OpenFileName メッセージは好みで変更
’wb.Close 'コメント化し内容確認後手動でクローズ。
確認不要であれば、コメント外すことによって部署ファイルはクローズされる。
End Sub
No.1
- 回答日時:
こんばんは
ボタンを押したらある一定の処理をして欲しいということでしょうか?
ボタンに「そのような処理を行うマクロ」を登録しておけば可能です。
ただし、マクロを個別のブックに登録しておくと、毎回そのブックが開かれることになるので、マクロのテンプレートに保存しておくほうが良いでしょう。
マクロの内容自体はさほど難しいものではないので、ご自身で作成してください。
フォルダBの位置が固定で良いのなら、マクロの記録を修正しても可能だと思います。
・・・というか、そんな面倒なことをしなくても、「予定表」のテンプレートを作成しておいて、そこに「祝日一覧」への参照リンクを貼っておけば、ボタンなど作ったり、押したりしなくても自動で更新表示されますけれど?
参照リンクが嫌なら、クエリを利用して読み込むようにしておいても、ほぼ同等の手間で読み込みが可能です。
ありがとうございました。
参照リンク、クエリー便利なようですがまだ経験がありません。
今後勉強していくつもりです。よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ファイル一覧表を使ったファイルの移動 5 2022/08/10 15:37
- グループウェア 一太郎がイントラで開けません。対処方法を知りたいです。 3 2023/04/04 13:30
- UNIX・Linux Ubuntu でinvalid filenameとなるファイルをコピーする方法 3 2023/06/08 22:26
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Windows Vista・XP windows10 フォルダを上書きするときに、元のフォルダを全て削除してコピーする方法 3 2022/05/22 00:53
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onedriveで同期解除をしたら、...
-
沢山のフォルダにあるファイル...
-
マイドキュメントのフォルダの...
-
こんなDOSコマンドのbatファイ...
-
「隠しファイル・フォルダを別...
-
フォルダ内の多重フォルダを解...
-
ファイルをコピーしたとき、も...
-
フォルダの上書きで、上書きさ...
-
Macでエイリアスがつくれない。...
-
Windowsファイルエクスプローラ...
-
excel 別のフォルダから列コピ...
-
ショットナビクレスト ゴルフ場...
-
1つのフォルダには何個までのフ...
-
Googleドライブの同期について
-
特定のフォルダからファイルの...
-
ファイルパスのチルダの意味
-
Windowsからのテキストファイル...
-
WAB DLLが見つかりません
-
一つのフォルダに入るファイル...
-
Ubuntu でinvalid filenameとな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onedriveで同期解除をしたら、...
-
沢山のフォルダにあるファイル...
-
マイドキュメントのフォルダの...
-
ファイルをコピーしたとき、も...
-
ファイルパスのチルダの意味
-
USB内のフォルダが「ファイル」...
-
動画のサイズと再生時間の長さの件
-
ファイルのプロパティの属性の...
-
Windowsファイルエクスプローラ...
-
ショットナビクレスト ゴルフ場...
-
USBメモリの表示する「残り時間」
-
1つのフォルダには何個までのフ...
-
パソコンに変なファイルができ...
-
一つのフォルダに入るファイル...
-
異なるファイルに入った複数の...
-
「隠しファイル・フォルダを別...
-
フォルダの上書きで、上書きさ...
-
非圧縮のZIPファイルを作りたい...
-
Ubuntu でinvalid filenameとな...
-
移動先にないファイルのみをコ...
おすすめ情報
フォルダはAとBと書きましたが部署ごとにあります。
また予定表も部署によって色々あります。
「祝日」はどの部署とも共通していますので、1回/年更新するだけです。
「予定表」ファイルのSheet1→月予定 Sheet2→祝日としてあります。
祝日のシートにコピーを貼り付けたいと思っています。
質問する前にマクロでやってみましたが、別のフォルダからコピーすると何も表示されませんでした。
説明もわかりずらいと思いますがよろしくお願いいたします。
ありがとうございます。
申し訳ありませんが方法を教えていただけないでしょうか?
よろしくお願いいたします。
フォルダ(A)は「祝日元」のブックだけが入っています。
フォルダ(B)の中は各部署ごとのフォルダが入っています。その各部署のフォルダに班ごとのブックがあります。
フォルダ(A)の「祝日元」のA列、B列をコピーして
フォルダ(B)の中の各部署フォルダの中の班ごとブックのA列、B列に貼り付けるというものです。
フォルダから別のフォルダへのマクロができません。
この説明でわかりますでしょうか?
よろしくお願いいたします。
ありがとうございます。
1.マクロを格納するブックはどれですか。
祝日元のブックです
2.祝日元のブックのコピー元のシート名は"Sheet1"であってますか。
"祝日"です
3.班ごとのブックのコピー先のシート名は"Sheet2"であってますか。
"祝日"です
4.マクロを実行したとき、
1回の実行で、全ての班ごとのブックへコピーしたいと思っています。
できれば
1回の実行で、1つの班ごとのブックへコピーすることも教えていただきたいです。
よろしくお願いいたします。