![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
表題通り、Excelシートの自動コピーをマクロを使って行いたいのですが、
マクロやVBAの知識が全くないため、どなたかコードを教えていただけないでしょうか。
まず今現在、B1セルに9月1日と日付を入れ、シート名を1日としたものがあります。
これを自動で複製して、B1セルの日付を9月2日 9月3日…
シート名を2日 3日…となるように、日毎ごとの一ヶ月分のシートを作り
ひとつのbookにしたいと考えております。
また、その際に、B1セルとシート名の日付が日曜・祭日に当たる場合、
シート名に色を付けたいと思っています。
(因みにB1セルの日付はシリアル値で入れていて、
書式で○月○日となるように表示していて、日付が日曜・祭日に当たる場合は
赤文字になるよう、別シートに祝日リストも作って
条件付き書式で設定してあります。)
Excelの関数は使えても、マクロは全く分からないので
どうかよろしくお願い致します。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
No.3 です。
連続での投稿すみませんが、書き忘れたことを補足させていただきます。No.3 の帳票の日付を例えば「9/7」と指定すると、記録側で「メモ」の列が空白になっているので、そのままでは帳票側に「0」が表示されます。
これを表示したくないという場合は、F8 セルの書式を設定すれば、ゼロになるときだけ非表示にできます。具体的には、セルを右クリックするなどして「セルの書式設定 > 表示形式タブ > ユーザー定義 > 種類ボックス」に、「[=0]"";G/標準」などを記入します。
No.3
- 回答日時:
コピーしたり色塗ったりということは、No.1 さんが教えてくださっているとおり、至って簡単にできます。
ベストアンサーは辞退します。ですがその前に是非、1 か月 30 日分のシートを用意するというシステムが本当に最善なのか、見直してみてください。
例えば日誌だとか売上伝票だとか、何らかの毎日の記録を残すのが目的であれば、1 日 1 行ずつ記入していく「記録」シート 1 枚と、このシートから日付あるいは何らかのコードを指定することで特定の行の情報を写し取り、PDF や紙媒体に印刷する「帳票」シート 1 枚、合計でたったの 2 枚だけ用意すれば、事足りてしまったりしませんか?
添付図の例では、次式を記入しています。
F6 =vlookup($G$3,記録!$A$2:$D$4,2,)
G6 =vlookup($G$3,記録!$A$2:$D$4,3,)
F8 =vlookup($G$3,記録!$A$2:$D$4,4,)
あるいは、F6 の数式中の「2」という部分は、次のとおり関数で上書きしてもいいです。この場合、F6 セルをコピーし、G6、F8 にそれぞれ貼り付け。
F6 =vlookup($G$3,記録!$A$2:$D$4,match(f5,記録!$A$1:$D$1,),)
それと次回からは、業務委託ではなく、ぜひ始めから「質問を」してください。お待ちしています。
![「Excelシートの自動コピーでマクロを使」の回答画像3](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/f/1037181_5497eeae3ae2f/M.jpg)
No.2
- 回答日時:
>・1日シートのB1に年/月/1の日付が記入してある
>これは書式の設定で、m月d日(aaa)と表示するようにしてあるのですが
>年/月/1と表示させていないため、うまくマクロが動いてくれないのでしょうか?
書式は関係ありません。勿論条件付き書式も無関係です。
>B1セルの日付が飛び飛びに
>こちらは日曜・祭日の色付けがおかしくなってしまいました。
補足された全てのご説明は、肝心の1日シートのB1セルの「具体的な中身」が「シリアル値で記入されていない」など、何かご説明とは異なる状況であることを示唆しています。
再掲:
>1日シートのB1に年/月/1の日付が記入してある
繰り返しますが書式は無関係で、まず次の通りに「記入」してから、マクロを実行してください。
1日シートのB1セルの今の内容を消去し、あなたのご説明の通りに
2013/9/1
と生日付を手で記入、セルの書式設定の表示形式は
m月d日(aaa)
としてもう一回マクロを実行します。
![「Excelシートの自動コピーでマクロを使」の回答画像2](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/3/1223049_5497f2ce76598/M.jpg)
No.1
- 回答日時:
準備
・元になる「1日」シートを用意してある(全角半角の間違いも無いこと)
・1日シートのB1に年/月/1の日付が記入してある
・「別シート」シートのA列に祝日一覧が年/月/日で記入してある
手順:
ALT+F11を押す
現れた画面で挿入メニューから標準モジュールを挿入する
現れたシートに下記をコピー貼り付ける
sub macro1()
dim i as integer
dim e as integer
dim m as integer
’前掃除
on error resume next
application.displayalerts = false
for i = 2 to 31
worksheets(i & "日").delete
next i
application.dispayalerts = true
on error goto 0
’準備
e = day(dateadd("m", 1, worksheets("1日").range("B1")) - 1)
worksheets("1日").select
’作業 1日シートタブの色付けも忘れず行う
for i = 1 to e
if i <> 1 then worksheets("1日").copy after:=worksheets(worksheets.count)
range("B1") = range("B1") + i - 1
activesheet.name = i & "日"
if weekday(range("B1")) = 1 _
or application.countif(worksheets("別シート").range("A:A"), range("B1").value) > 0 then
activesheet.tab.color = vbred
else
activesheet.tab.color = false
end if
next i
end sub
ファイルメニューから終了してエクセルに戻る
ALT+F8を押してマクロを実行する。
この回答への補足
括弧内の説明が、少し不足していたので補足しておきます。
B1セルの日付はシリアル値で入れていて、
書式で○月○日となるように表示していて、日付が日曜に当たる場合は
赤文字になるよう、条件付書式でWEEKDAY関数を入れ
祝日の場合は、「祝日リスト」シートを作り
条件付き書式でMATCH関数で設定してあります。
回答ありがとうございます。
早速使わせていただいたのですが、
B1セルの日付が飛び飛びになってしまい、
シート名30日のB1セル日付が、2014年12月10日になってしまいました。
シート名の方は2日 3日…と、きちんとキレイに複製できているのですが
こちらは日曜・祭日の色付けがおかしくなってしまいました。
準備として
・元になる「1日」シートを用意してある(全角半角の間違いも無いこと)
これはOKなのですが
・1日シートのB1に年/月/1の日付が記入してある
これは書式の設定で、m月d日(aaa)と表示するようにしてあるのですが
年/月/1と表示させていないため、うまくマクロが動いてくれないのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) エクセルの休日について教えてください。 1 2023/01/06 15:45
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) エクセル関数について 2 2022/04/13 18:25
- Excel(エクセル) Excelについて 1 2023/03/06 10:26
- Excel(エクセル) 添付写真上のExcelシートのように時間と曜日ごとに担当者が振り分けられているシートがあります。 例 1 2023/03/08 13:02
- Excel(エクセル) エクセルの祝日に色が反映しない 4 2022/05/18 09:58
- Excel(エクセル) Excel シート複数 金額日計表と日付 簡単にシートコピーしたら前日の残高と日付を変更させたい 1 2022/07/15 22:10
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- Excel(エクセル) エクセルの数式について教えてください。 1 2023/03/21 09:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IFとIFS関数
-
Excelを無料で使うには? パソ...
-
セルの数を求めたい
-
Excelの表示についての質問
-
再質問です。マクロの修正箇所...
-
データチェックを行うエクセル...
-
エクセルで「ページレイアウト...
-
エクセルの数式バーのフォント...
-
エクセルの関数について教えて...
-
エクセルでセルに標準で入力さ...
-
Microsoft1Officeの互換ソフト...
-
シフト表をエクセルで作るとき...
-
ユーザー定義関数をアドイン登...
-
Excel VBAで全ての矢印を赤色に...
-
VBA Private Sub Worksheet_Cha...
-
2列に入っているデータを1列...
-
Excelに詳しい方! B列が「日...
-
excel2013 MonthDays 関数が使...
-
エクセルのクイックアクセスツ...
-
Excelの数式について教えてくだ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報